用于屏幕大小的Xamarin Forms iOS方法已更改

时间:2016-12-20 11:56:06

标签: xamarin xamarin.ios xamarin.forms size screen

在我的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!

有人知道改变了什么吗?

由于

1 个答案:

答案 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;
        }
    }
}