Xamarin.Forms 如何将成语过滤应用于样式

How to apply Idiom filtering to a Style in Xamarin.Forms

我打算在我的 Xamarin.Forms 应用中支持平板电脑,所以我检查了如何创建不同的布局。

根据 this blog entry,我可以像这样在 XAML 代码中使用 OnIdiom 开关:

<Grid.RowSpacing>
    <OnIdiom x:TypeArguments="x:Double"
             Phone="10"
             Tablet="20"/>
</Grid.RowSpacing>

不过,我也打算创建样式来尽量减少代码的编写。不幸的是,我无法通过 Idiom 开关指定样式值,如下所示:

<Style x:Key="BoldField" TargetType="Label">
    <Setter Property="FontAttributes" Value="<OnIdiom x:TypeArguments="FontAttribute" Phone="Bold" Tablet="Normal"/>" />
</Style>

我可以创建一个打开成语的样式吗?

我想,你可以。尝试这样的事情:

<Style x:Key="BoldField" TargetType="Label">
  <Setter Property="FontAttributes">
    <Setter.Value>
      <OnIdiom x:TypeArguments="FontAttribute" Phone="Bold" Tablet="Normal"/>
    </Setter.Value>
  </Setter>
</Style>