2016-08-15 115 views
2

我在我的资产文件夹中有自定义字体,需要将此字体指定为应用程序的全局字体。这是我想到的,但它不起作用。如何在App.xaml中设置全局自定义字体

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

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

+0

我也想知道是否有办法设置全局自定义字体。 – AVK

回答

2

这是我想到的,但它不工作。

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

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

然后在文本框中使用该资源的风格二传手:

<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此路径表示您的字体文件位于Assets文件夹的Fonts文件夹下,请确保路径正确。

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

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

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

enter image description here

如果仍有问题,您可以发表评论以发布字体文件资源的下载网址,那么我们可以下载它并进行测试。

+0

现在它的工作:D我把字体放在PCL哈哈哈的资产文件夹中。感谢您通过一个彻底的解释:)) – astropringles