代码之家  ›  专栏  ›  技术社区  ›  TheDeveloper

Xamarin表单:资源字典-为标签、文本视图和按钮设置字体系列

  •  0
  • TheDeveloper  · 技术社区  · 6 年前

    我想在资源字典中设置字体信息,标签、按钮、文本视图都可以使用。

    <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 ,如果我将目标类型设置为label或button,则它可以工作。 是否有一种方法可以在资源字典中同时设置字体信息(包括字体系列和大小),以便标签、按钮和文本视图使用,而不必为不同的目标类型复制同一类型?

    1 回复  |  直到 6 年前
        1
  •  1
  •   EvZ    6 年前

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

    • 字体
    • 文本大小
    • 每个控件的样式

    例子:

    <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>
    

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