某些字体类型无法应用于UWP

时间:2016-05-11 10:03:16

标签: fonts uwp win-universal-app uwp-xaml

我发现某些字体类型无法在UWP中使用。

例如:Noto Sans CJK TC或Noto Sans(均为Google opensource字体)

即使这个字体已经安装在系统中,或者放入app项目并使用“ms-appx:”或设置此字体的相对路径。

(像这个问题的答案:UWP - Font only applied in Designer,提供了一个例子,能够使用自定义字体)

当我应用某些字体时,只在设计器中看到效果,但在运行时没有。

并且有指南,但没有告诉如何知道哪种字体类型无法在UWP中使用。 https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/fonts?f=255&MSPPError=-2147217396

UWP中是否有任何字体类型限制?

谢谢!

1 个答案:

答案 0 :(得分:4)

  

我发现问题是因为我把页面放在文件夹中,但为什么?

在您的代码中,您使用以下代码设置FontFamily

FontFamily="Assets/fonts/NotoSansCJKtc-Thin.otf#Noto Sans CJK TC"

您使用的URI是相对URI,它将访问相对于当前XAML页面的文件。在您的情况下,在BlankPage1中使用它时,它将尝试访问当前文件夹中的 Assets/fonts/NotoSansCJKtc-Thin.otf 文件,该文件夹是“UI”文件夹。由于“UI”文件夹中没有此类文件,FontFamily属性将使用其默认值。

要从XAML页面访问相对于包的根目录的文件,您可以使用绝对路径URI(以“/”开头的那些),如下所示:

<TextBlock Margin="0,80,0,0"
               HorizontalAlignment="Center"
               FontFamily="/Assets/fonts/NotoSansCJKtc-Thin.otf#Noto Sans CJK TC"
               FontSize="80"
               Foreground="#878787">
    微abc012
</TextBlock>

或使用 ms-appx: 计划如下:

<TextBlock Margin="0,80,0,0"
           HorizontalAlignment="Center"
           FontFamily="ms-appx:///Assets/fonts/NotoSansCJKtc-Thin.otf#Noto Sans CJK TC"
           FontSize="80"
           Foreground="#878787">
    微abc012
</TextBlock>
  

和FontFamily =“Assets / fonts / NotoSansCJKtc-Thin.otf#Noto Sans CJK TC”可以工作,但FontFamily =“Assets / fonts / NotoSansCJKtc-Thin.otf#Noto Sans CJK TC Thin”不会。< / p>

我身边也有同样的问题。形成otf文件,其字体名称应为“Noto Sans CJK TC Thin” enter image description here 但是,使用此字体名称在XAML Designer和运行时都不起作用。我认为这个问题可能与otf文件有关,因为我测试了一些其他字体,它们都按预期工作。

  

我也尝试在同一解决方案中引用其他项目字体资源。

要在同一解决方案中引用其他项目字体资源,您可以参考UWP - Font only applied in Designer中的上一个答案。