如何在 App.xaml 中设置全局自定义字体

How to set Global Custom Font in App.xaml

我的资产文件夹中有一个自定义字体,需要将此字体指定为应用程序的全局字体。我是这么想的,但是不行。

<FontFamily x:Key="MetricWebRegular">
                ms-appx:///Assets/Fonts/MetricWeb-Regular.ttf#Metric Web
</FontFamily>

我通过将它添加到文本框中的样式 setter 来调用它。

This is what I thought of but it's not working.

很难知道这里出了什么问题,只是根据您的代码,它应该可以工作。首先,我没有你的字体资源,我从网上下载了一个,这样测试:

<Application.Resources>
    <FontFamily x:Key="MetricWebRegular">ms-appx:///Assets/Blambot-Custom.ttf#Blambot Custom</FontFamily>
</Application.Resources>

然后在文本框中以 setter 的样式使用此资源:

<Page.Resources>
    <Style x:Key="TextBoxStyle" TargetType="TextBox">
        ...
        <Setter Property="FontFamily" Value="{StaticResource MetricWebRegular}" />    
        ...

          </Setter>
      </Style>
  </Page.Resources>

还有我的 TextBox:

<TextBox Text="Hello 11111222333" FontSize="30" Style="{StaticResource TextBoxStyle}" />

完美运行:

这是我的字体 download Uri。我下载了它并在此处更改了它的名称,以便它符合您的格式。

所以,

  1. 确保你的字体文件没有问题

  2. ms-appx:///Assets/Fonts/MetricWeb-Regular.ttf#Metric Web这个路径表示你的字体文件在Assets文件夹的Fonts文件夹下,确保路径正确。

  3. 如果你想使用这个资源,你需要使用StaticResource和它的密钥。

  4. 如果要覆盖默认字体系列,可以像这样覆盖 ContentControlThemeFontFamily 资源:

<FontFamily x:Key="ContentControlThemeFontFamily">ms-appx:///Assets/Blambot-Custom.ttf#Blambot Custom</FontFamily>,我的布局结果在这里:

如果还有问题,可以在post你的字体文件资源下载url留言,我们可以下载测试一下吗