Xamarin表单:资源字典 - 为标签,textview和按钮设置字体系列

时间:2018-06-06 17:58:58

标签: xamarin xamarin.forms

我想在标签,按钮,textview使用的资源字典中设置字体信息。

<OnPlatform x:TypeArguments="x:String" x:Key="HelveticaNeue">
                <On Platform="iOS">HelveticaNeue</On>
                <On Platform="Android">HelveticaNeue#HelveticaNeue</On>
            </OnPlatform>

            <Style x:Key="style1" TargetType="Font">
                <Setter Property="FontFamily" Value="{StaticResource HelveticaNeue}" />
                <Setter Property="FontSize" Value="23" />
            </Style>

我尝试了上面的代码,但是它失败了,因为在Font类型中FontFamily set属性是私有的。对于键style1,如果我将目标类型设置为标签或按钮,则可以使用。 有没有办法可以一次在资源字典中设置字体信息(包括字体系列和大小),可以用于标签,按钮和文本视图,而不会为不同的目标类型复制相同的类型?

1 个答案:

答案 0 :(得分:1)

通常我有3种不同的资源:

  • 字体
  • TEXTSIZE
  • 每个控件的样式

示例:

<OnPlatform
    x:Key="MediumFontFamily"
    x:TypeArguments="x:String"
    Android="sans-serif-medium"
    iOS="HelveticaNeue-Medium" />

<x:Double x:Key="TitleFontSize">20</x:Double>

<Style x:Key="TitleLabel" TargetType="Label">
    <Setter Property="TextColor" Value="{StaticResource HeaderTextColor}" />
    <Setter Property="FontFamily" Value="{StaticResource MediumFontFamily}" />
    <Setter Property="FontSize" Value="{StaticResource TitleFontSize}" />
</Style>

这样就不会有重复,因为你只是在重用资源。