【问题标题】:Custom font for all labels Xamarin Forms所有标签的自定义字体 Xamarin Forms
【发布时间】:2017-11-16 09:48:57
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我们从 Label 派生了一个自定义控件,以便我们可以在整个应用程序中统一设计。

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


【解决方案1】:

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

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

【讨论】:

  • 啊! x:Key 是为什么无法使其在资源字典中工作的原因。谢谢!但是出现了一个新问题,因为粗体版本是一个单独的 ttf 文件,我不能简单地将字体属性更改为粗体。有什么建议可以解决这个问题,还是我应该提出一个新问题?
猜你喜欢
  • 2016-10-14
  • 1970-01-01
  • 2017-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
相关资源
最近更新 更多