[英]How to translate this Padding with Device.OnPlatform? (iOS cases)
因此,我现在正通过一本xamarin.forms书来工作,我发现了:
Padding = new Thickness(5, Device.OnPlatform(20, 5, 5), 5, 5);
Device.OnPlatform得到一个过时的警告。
我知道我可以翻译
Padding = Device.OnPlatform(new Thickness(0,20,0,0),
new Thickness(0),
new Thickness(0));
至
switch (Device.RuntimePlatform)
{
case Device.iOS:
Padding = new Thickness(0, 20, 0, 0);
break;
};
但是这里到底发生了什么,我该如何翻译?
Padding = new Thickness(5, Device.OnPlatform(20, 5, 5), 5, 5);
new Thickness(5, 5, 5, 5);
具有4个double
参数意味着将创建一个新的填充(在这种情况下),左侧为5,顶部为5,右侧为5,底部为5。 因此,从左到右,您只需沿顺时针方向从左开始。
我们看到第二个参数(所以顶部填充)将根据平台而有所不同。 从我的头上,我不确定哪个参数是哪个平台,但是我猜第一个将是iOS。 现在发生的是,每个平台的左侧填充为5,顶部填充为不同。 对于iOS,它将是20,对于Android和UWP(请记住,只是一个猜测),它将仍然是5。然后右侧和底部的填充没有变化,因此它们仍然是5。
如果要严格在代码中执行此操作,则可能会转换为以下内容:
double topPadding = 5;
switch (Device.RuntimePlatform)
{
case Device.iOS:
topPadding = 20;
break;
default:
topPadding = 5;
break;
};
Padding = new Thickness(5, topPadding, 5, 5);
当然,您可以添加一些不同的大小写或更改值,完全由您决定。
您也可以使用XAML。 然后可能看起来像这样:
<YourControl Padding="{OnPlatform '5,5,5,5', iOS='5,20,5,5'}" />
YourControl
是要对其应用此控件的控件。 对于未指定的所有平台, OnPlatform
之后的第一个'5,5,5,5'
值是默认值。 指定了iOS,因此将使用为其指定的值。 在此处阅读有关OnPlatform扩展的更多信息: https ://docs.microsoft.com/zh-cn/xamarin/xamarin-forms/xaml/markup-extensions/consumption#onplatform-markup-extension
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.