所有标签Xamarin Forms的自定义字体

时间:2017-06-14 09:58:02

标签: xaml xamarin fonts xamarin.forms custom-font

我已从fonts.google.com下载了一种字体,并希望为我的Xamarin Forms应用中的所有标签设置字体系列。

将以下代码添加到所有标签似乎是一项过多的工作

                <Label.FontFamily>
                        <OnPlatform x:TypeArguments="x:String">
                        <OnPlatform.Android>Mogra-Regular.ttf#Mogra-Regular</OnPlatform.Android>
                    </OnPlatform>
                </Label.FontFamily>

理想情况下,我会在资源字典中设置字体系列,我已经成功设置了文本颜色和字体属性,但是,我这样做是不成功的。

我已设法使用自定义渲染器更改字体系列,但是当我使用动态资源更改标签文本颜色或字体属性时,字体系列将重置为默认值。

是否有任何方法可以让我普遍使用我的自定义字体,并且仍然可以动态更改任何给定标签的其他方面?

1 个答案:

答案 0 :(得分:6)

在App.xaml中创建隐式样式(没有x:Key的样式),它将应用于所有Label

<Style TargetType="Label">
  <Setter Property="FontFamily">
    <Setter.Value>
      <OnPlatform x:TypeArguments="x:String">
        <OnPlatform.Android>Mogra-Regular.ttf#Mogra-Regular</OnPlatform.Android>
      </OnPlatform>
    </Setter.Value>
  </Setter>
</Style>