在xamarin表单中的样式(在xaml中定义)我可以定义特定于值的平台,如下所示:
<OnPlatform x:TypeArguments="Font" Android="30" iOS="40" WinPhone="20" x:Key="TitleFontSize" />
<Style x:Key="MyTitleLabel" TargetType="Label"">
<Setter Property="Font" Value="{StaticResource TitleFontSize}" />
</Style>
我是否也可以通过某种方式定义样式,以便&#34; Font&#34;对于某些plarforms,它是否保持默认值(根本没有设置)?
这样的事情:
<Style x:Key="MyTitleLabel" TargetType="Label"">
<OnPlatform>
<OnPlatform.Android>
<Setter Property="Font" Value="30" />
</OnPlatform.Androud>
</OnPlatform>
</Style>
答案 0 :(得分:2)
这应该有效:
<Style x:Key="MyTitleLabel" TargetType="Label"">
<Setter Property="Font">
<Setter.Value>
<OnPlatform x:TypeArguments="x:Double">
<On Platform="Android">30</On>
<!--?<On Platform="iOS">20</On>-->
</OnPlatform>
</Setter.Value>
</Setter>
</Style>
答案 1 :(得分:1)
无法避免设置值 - 如果未指定任何值,则默认为default(T)
。
但是,使用最新的XF版本(> 2.4.0.282),可以使用Default
property来指定回退值。
<OnPlatform x:TypeArguments="x:Double" Default="25"> <!-- specify default value here -->
<OnPlatform.Android>
<Setter Property="Font" Value="30" />
</OnPlatform.Androud>
</OnPlatform>