Xamarin OnIdiom and OnPlatform StaticResource For Margins



我正在为标签设置样式,但XAML格式有一些问题。我有下面的代码,运行良好。

<Style x:Key="LabelMargin" TargetType="Label">
<Setter Property="Margin">
<Setter.Value>
<OnIdiom x:TypeArguments="Thickness">
<OnIdiom.Phone>5,5,0,0</OnIdiom.Phone>
<OnIdiom.Tablet>10,20,0,0</OnIdiom.Tablet>
</OnIdiom>
</Setter.Value>
</Setter>
</Style>

然而,我希望现在能够进一步深入到操作系统级别。我喜欢把目标锁定在操作系统上,而不仅仅是打电话。

我找到了一些样品,但没有一个是空白的。我已经想出了下面的XAML,但它不起作用?

<Style x:Key="LabelMargin" TargetType="Label">
<Setter Property="Margin"  x:TypeArguments="Thickness" Value = "{OnIdiom 
Phone= {OnPlatform iOS =5,5,0,0 , Android=5,5,0,0},
Tablet= {OnPlatform iOS =5,5,0,0 , Android=5,5,0,0}}" >
</Setter>
</Style>

如有任何帮助,我们将不胜感激。

Mike

经过一番尝试和错误之后,我开始工作了。如果有人偶然发现这个问题,这里是我如何工作的:

<Setter Property="Margin"> 
<Setter.Value>
<OnIdiom x:TypeArguments="Thickness">
<OnIdiom.Phone>
<OnPlatform x:TypeArguments="Thickness" Android ="5,5,0,0" iOS ="5,5,0,0"  />
</OnIdiom.Phone>
<OnIdiom.Tablet>
<OnPlatform x:TypeArguments="Thickness" Android ="20,20,20,20" iOS ="20,20,20,20"  />
</OnIdiom.Tablet>
</OnIdiom>
</Setter.Value>
</Setter>

最新更新