在我的Xamrin.Forms应用程序中,我使用此方法获取屏幕分辨率:我编写了一个具有高度和宽度属性的界面,在iOS渲染中我使用了UIScreen.MainScreen.Bounds.Height和UIScreen.MainScreen.Bounds.Width 。这是好的...直到大约一个月前!现在,如果我在iPhone 5c上运行我的应用程序(屏幕分辨率声明为1136x640),则值为568x320 whit scale 2,如果我在iPhone 6上运行它(分辨率为1334x750),则值相同,568x320 whit scale 2!
有人知道改变了什么吗?
由于
答案 0 :(得分:0)
无需使用依赖服务来获取设备宽度&高度。
获得屏幕宽度的最佳方式&每当屏幕高度或宽度发生变化或屏幕旋转时,高度 OnSizeAllocated()将被触发,您将获得新的宽度和宽度。身高
示例代码:
using Xamarin.Forms;
namespace ABC
{
public class MyPage : ContentPage
{
private double _width;
private double _height;
public MyPage()
{
Content = new Label {
Text = "Welcome to Xamarin.Forms!"
};
}
protected override void OnSizeAllocated(double width, double height)
{
base.OnSizeAllocated(width, height);
_width = width;
_height = height;
}
}
}