Xamarin.Forms WidthRequest值的含义

Or *_*rel 21 c# xamarin xamarin.forms

在Xamarin.Forms中,以下属性获得双重:WidthRequest,HeightRequest,Padding,Spacing等.这个数字的含义是什么?它是像素还是其他什么?我在这些属性中放置的值是否响应设备屏幕大小?考虑到可用的许多屏幕尺寸,我应该如何决定应该使用什么价值?

我还尝试打印一些元素的宽度,结果得到-1.为什么?

Ima*_*ani 27

Xamarin.Forms的理念是尽可能地使用底层平台的约定.根据这一理念,Xamarin.Forms程序员可以使用每个特定平台定义的大小.程序员通过Xamarin.Forms API遇到的所有大小都在这些特定于平台的设备独立单元中.(c)

在Xamarin Forms中,这些数字与特定平台上的英寸厘米有关系.见下文:

这些是英寸的关系

  • iOS:160英寸单位
  • Android:160英寸单位
  • Windows Phone:240英寸单位

如果您更喜欢公制,这些是以厘米为单位的关系

  • iOS:64厘米到厘米
  • Android:64个单位到厘米
  • Windows Phone:96个单位到厘米

例如,如果您希望显示宽度为1英寸,高度为2英寸的图像,您可以执行以下操作:

var avatar = new Image{
    WidthRequest = Device.OnPlatform(160, 160, 240),
    HeightRequest = Device.OnPlatform(320, 320, 480)
};
Run Code Online (Sandbox Code Playgroud)

相同的概念适用于间距和填充.这些参数也具有默认值.初始设置为-1的"模拟"值.只有在布局系统定位并调整页面上的所有内容时,这些属性的值才有效.

希望这可以帮助!

您可以从"使用Xamarin Forms创建移动应用程序"一书中了解更多相关信息