某些字体类型无法在 UWP 中应用
Some font type can't apply in UWP
我发现一些字体类型无法在 UWP 中使用。
例如:Noto Sans CJK TC 或 Noto Sans(均为 Google 开源字体)
即使这个字体已经安装在系统中,或者放入应用程序项目中并使用"ms-appx:"或相对路径设置此字体。
(喜欢这个问题的答案:,提供了一个例子,可以使用自定义字体)
当我应用一些字体时,只在设计器中看到效果,但在 运行-time.
并且有指南,但没有说明如何知道哪种字体类型不能在 UWP 中使用。
https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/fonts?f=255&MSPPError=-2147217396
UWP 有字体类型限制吗?
谢谢!
I found the problem cause I put page inside folder, but why?
在您的代码中,您使用以下代码设置 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(以“/”开头的 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>
And FontFamily="Assets/fonts/NotoSansCJKtc-Thin.otf#Noto Sans CJK TC" can work, but FontFamily="Assets/fonts/NotoSansCJKtc-Thin.otf#Noto Sans CJK TC Thin" won't.
我身边也有同样的问题。形成otf文件,其字体名称应为"Noto Sans CJK TC Thin".
但是,使用此字体名称在 XAML Designer 和 运行-time 中都不起作用。我认为这个问题可能与 otf 文件有关,因为我用其他一些字体进行了测试,它们都按预期工作。
I also try to reference other project font resource in same solution.
要在同一个解决方案中引用其他项目字体资源,可以参考我之前在中的回答。
我发现一些字体类型无法在 UWP 中使用。
例如:Noto Sans CJK TC 或 Noto Sans(均为 Google 开源字体)
即使这个字体已经安装在系统中,或者放入应用程序项目中并使用"ms-appx:"或相对路径设置此字体。
(喜欢这个问题的答案:
当我应用一些字体时,只在设计器中看到效果,但在 运行-time.
并且有指南,但没有说明如何知道哪种字体类型不能在 UWP 中使用。 https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/fonts?f=255&MSPPError=-2147217396
UWP 有字体类型限制吗?
谢谢!
I found the problem cause I put page inside folder, but why?
在您的代码中,您使用以下代码设置 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(以“/”开头的 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>
And FontFamily="Assets/fonts/NotoSansCJKtc-Thin.otf#Noto Sans CJK TC" can work, but FontFamily="Assets/fonts/NotoSansCJKtc-Thin.otf#Noto Sans CJK TC Thin" won't.
我身边也有同样的问题。形成otf文件,其字体名称应为"Noto Sans CJK TC Thin".
I also try to reference other project font resource in same solution.
要在同一个解决方案中引用其他项目字体资源,可以参考我之前在