我发现某些字体类型无法在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中是否有任何字体类型限制?
谢谢!
答案 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” 但是,使用此字体名称在XAML Designer和运行时都不起作用。我认为这个问题可能与otf文件有关,因为我测试了一些其他字体,它们都按预期工作。
我也尝试在同一解决方案中引用其他项目字体资源。
要在同一解决方案中引用其他项目字体资源,您可以参考UWP - Font only applied in Designer中的上一个答案。