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

标签 xaml uwp uwp-xaml

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

<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}" />

它工作得很好:

enter image description here

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

所以,

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

  2. ms-appx:///Assets/Fonts/MetricWeb-Regular.ttf#Metric Web该路径表示您的字体文件位于 FontsAssets 的文件夹文件夹,确保路径正确。

  3. 如果你想使用这个资源,你需要使用StaticResource及其 key 。

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

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

enter image description here

如果还有问题,您可以留言留下您的字体文件资源的下载地址,以便我们下载测试。

关于xaml - 如何在App.xaml中设置全局自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38956592/

相关文章:

uwp - 错误 CS5001 : Program does not contain a static 'Main' method suitable for an entry point

c# - 未设置 UWP ComboBox SelectedValue

c# - 让 ListView 有一个像联系人应用程序一样的过滤器

wpf - 为什么在这种情况下无法解析 StaticResource?

c# - 如何更改 WinRT ToggleSwitch 颜色?

silverlight - XamlParseException 在 Expression Blend 中使用 Silverlight Toolkit 控件

c# - 枢轴选择更改时如何在枢轴项目中加载图像后如何加载音频文件

javascript - 您的 project.json 未将 'win10' 列为目标运行时

windows - Behaviors SDK 在 Vs2017 中不可用

uwp - 复制 UWP RichEditBox 内容会添加额外的行