我无法添加自定义字体。我遵循了here的步骤this page,但未使用字体。
我已将字体添加到我的项目中
确实出现在我的设计师视图中
在Windows中打开的字体(用于验证字体名称):
但是当我提到它们时,它们仍未在我的应用程序中使用。我尝试了以下语法
<TextBlock
Grid.Column="1"
Text="{x:Bind Text}"
FontFamily="ms-appx:///Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto Light"/>
或者当我在Designer中选择字体时,由设计师填写
<TextBlock
Grid.Column="1"
Text="{x:Bind Text}"
FontFamily="Delphi-Soleto Light"/>
或者按照this site的提议
<TextBlock
Grid.Column="1"
Text="{x:Bind Text}"
FontFamily="/Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto Light"/>
非常感谢您的帮助...!
将GIT存储库上传到:
https://github.com/basprins/CustomFontWinIot
我正在尝试在BulletText.xaml
中使用Delphi字体:
<TextBlock
Grid.Column="1"
Margin="0, 13, 0, 0"
Style="{StaticResource Normal}"
Text="{x:Bind Text}"
FontFamily="{StaticResource DefaultFont}"/>
我在首页上添加了BulletText
控件,该控件在应用启动时立即可见。
使用空白应用程序更新git repo,该应用程序引用不会显示的字体
在我的PC上,我没有 not 将字体安装到Windows中。我只是将它们添加到项目中。代码见github页面。设计器视图的屏幕截图
答案 0 :(得分:2)
您不应使用FontFamily属性中的字体粗细索引来引用字体文件。如果需要设置字体粗细,则可以设置FontWeight的TextBlock属性。试试这个:
<StackPanel>
<!--Don't add "Light" in the FontFamily-->
<TextBlock FontFamily="ms-appx:///Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto"
Text="Hello world, this is my test"/>
<!--Don't add "Thin" in the FontFamily-->
<TextBlock FontFamily="ms-appx:///Assets/Delphi-Soleto_Th.ttf#Delphi-Soleto"
Text="Hello world, this is my test"/>
<!--This is the default font family, set the FontWeight property-->
<TextBlock Text="Hello world, this is my test" FontWeight="Normal"/>
</StackPanel>
这里是效果:
答案 1 :(得分:0)
在UWP应用程序中使用自定义字体的一种方法是在 App.xaml 中定义:
1-在项目的根目录中创建一个文件夹,并将其命名为“字体”
2-选择自定义字体,然后按 F4 并将 复制到输出目录 设置为 始终复制 >
3-在 App.xaml 文件> Application.Resources 标签> ResourceDictionary 标签中,添加以下代码:
<FontFamily x:Key="DefaultFont">/Fonts/(Your FontName).ttf#(Font Title)</FontFamily>
这样做之后,您可以随时随地在元素中使用字体,如下所示:
<TextBlock Text="Your Sample Text" FontFamily="{StaticResource DefaultFont}"></TextBlock>
答案 2 :(得分:0)
到目前为止,我在winiot / UWP上最大的挣扎...但是这里...
对于要拔头发的其他人的一些考虑。
首先,有可能。但是许多网站都告诉您一个不同的故事,它使原本就过于复杂的功能恕我直言变得过于复杂。
在物联网设备上可视化字体所需完成的步骤:
大多数网站会告诉您的显而易见的第一步。不过有几点评论。
copy to output
。定义方式无关紧要。 Content
。这是默认设置,因此您也不必为此烦恼。弄清楚正确的字体名称可能太可怕了。约定如下[字体家族文件路径]#[字体家族名称]。
一个例子是:
Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto
或使用完整的xaml:
<TextBlock FontFamily="Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />
是否使用msappx语法引用路径都没有关系,以下所有定义均适用:
<TextBlock FontFamily="Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />
<TextBlock FontFamily="/Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />
<TextBlock FontFamily="ms-appx:///Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />
字体名称
然后是大字体,即字体名称。重要的是要知道,字体样式应该从字体名称中删除。例如,
为了节省您的时间,让我从一开始就猜不到,这里有一个工具可以帮助您节省大量时间。注意Windows字体查看器,因为它可能不会显示您需要查看的内容。而是下载免费的dp4 font viewer。
如果打开dp4字体查看器并找到保存字体的文件夹,您将看到正确的字体名称。请注意以下屏幕截图中的字体系列名称。
最后但并非最不重要的一点是,一些网站声称xaml Designer将立即以字体显示文本,这很容易测试。它不会不站在我这边做。最终对我有帮助的是,将应用程序部署到目标(在我的情况下为RPI)并在调试器中运行该应用程序时更改XAML。这些更改确实会立即反映在您正在运行的应用中。
最后,我可以看着屏幕,看到字体可视化
我希望这会在那里!特别感谢Breeze Liu抽出宝贵的时间帮助我!
答案 3 :(得分:0)
只需添加2020年末的内容,在针对Windows 10版本1809(内部版本17763)的UWP项目中,我只能通过使用引号将其引用来显示自定义字体,
FontFamily="/Assets/Fonts/PT_Sans/PTSans-Regular.ttf#PT Sans"
如果没有前导斜线或uri以ms-appx:///开头,它将默认为标准字体。在上面拉了几根头发。
构建操作:内容
复制到输出目录:不复制
使用的字体是从Google下载的PTSans-Regular.ttf。