使用Xamarin Forms获取设备属性?

Ran*_*iri 9 xamarin xamarin.forms

我正在使用xamarin表单设计一个跨平台的应用程序.每个页面/视图/从后面的代码设计的表单.现在我想读取用户使用的设备的高度和宽度.根据这些值,我想放置一些页眉和页脚.

Fal*_*lko 42

要在Xamarin.Forms解决方案中获得屏幕宽度(或高度),我通常会添加以下几行代码:

  1. 在共享代码中定义公共静态属性,最好是App.cs:

    static public int ScreenWidth;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在开始时初始化它的iOS FinishedLaunchingAppDelegate.cs:

    App.ScreenWidth = (int)UIScreen.MainScreen.Bounds.Width;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 初始化它的Android OnCreateMainActivity.cs(如描述这里)

    App.ScreenWidth = (int)(Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density);
    
    Run Code Online (Sandbox Code Playgroud)

    (通过除以密度,可以得到与器件无关的像素.)

我没有使用Windows Phone,但应该有一个等效的命令.当然,获得屏幕高度的工作方式也类似.

现在,您可以访问App.ScreenWidth代码中的任何位置.