UWP IoT如何添加自定义字体

bas*_*bas 6 c# fonts uwp

我无法添加自定义字体。我按照此处引用此页面的步骤进行操作,但未使用该字体。

我已将字体添加到我的项目中

在此输入图像描述

它们确实出现在我的设计师视图中

在此输入图像描述

在Windows中打开的字体(以验证字体的名称):

在此输入图像描述

但是当我引用它们时,它们仍然没有在我的应用程序中使用。我尝试过以下语法

<TextBlock 
    Grid.Column="1" 
    Text="{x:Bind Text}"
    FontFamily="ms-appx:///Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto Light"/>
Run Code Online (Sandbox Code Playgroud)

或者当我在设计器中选择字体时设计器填写它

<TextBlock 
    Grid.Column="1" 
    Text="{x:Bind Text}"
    FontFamily="Delphi-Soleto Light"/>
Run Code Online (Sandbox Code Playgroud)

或者正如该网站建议的那样

<TextBlock 
    Grid.Column="1" 
    Text="{x:Bind Text}"
    FontFamily="/Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto Light"/>
Run Code Online (Sandbox Code Playgroud)

非常感谢帮助...!

已将 GIT 存储库上传至:

https://github.com/basprins/CustomFontWinIot

我正在尝试在以下位置使用 Delphi 字体BulletText.xaml

    <TextBlock 
        Grid.Column="1" 
        Margin="0, 13, 0, 0"
        Style="{StaticResource Normal}" 
        Text="{x:Bind Text}"
        FontFamily="{StaticResource DefaultFont}"/>
Run Code Online (Sandbox Code Playgroud)

我将BulletText控件添加到主页,应用程序启动时该控件将立即可见。

使用引用不会显示的字体的空白应用程序更新 git 存储库

在我的电脑上,我没有字体安装到 Windows 中。我刚刚将它们添加到项目中。代码见github页面。设计器视图的屏幕截图

在此输入图像描述

bas*_*bas 5

到目前为止,我在 winiot/UWP 中遇到的最大的困难...但这里是...

对于其他拔头发的人来说,有一些注意事项。

首先,这是可能的。但许多网站告诉您一个不同的故事,这使本已过于复杂的功能变得过于复杂。

在物联网设备上可视化字体所需执行的步骤:

将字体添加到您的项目中

大多数网站都会告诉您明显的第一步。但有几点评论。

  • 将字体存储在何处并不重要。它们可以驻留在 /Assets、/Fonts、/Assets/Fonts、/Resources 或您喜欢的任何位置。
  • 您不必费心copy to output。你如何定义它并不重要。
  • 您确实需要将构建操作留给Content. 这是默认设置,因此您也不必为此烦恼。

参考字体系列名称

找出正确的字体名称可能会很糟糕。约定如下:[字体系列文件路径]#[字体系列名称]。

一个例子是:

Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto
Run Code Online (Sandbox Code Playgroud)

或者在完整的 xaml 中:

<TextBlock FontFamily="Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />
Run Code Online (Sandbox Code Playgroud)

是否使用 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" />
Run Code Online (Sandbox Code Playgroud) 字体名称

然后是大的一个,字体名称。重要的是要知道,字体样式应该从字体名称中删除。因此例如

  • 文件“Delphi-Soleto_Blk.ttf”,字体名称为 Delphi-Soleto Light 变为 Delphi-Soleto
  • 文件“Delphi-Soleto_Blk.ttf”,字体名称为 Delphi-Soleto Black 变为 Delphi-Soleto
  • 文件“Delphi-Soleto_A_Blk.ttf”,字体名称为 Delphi-Soleto App Black 变为 Delphi-Soleto App

为了节省您像我开始时那样猜测的时间,这里有一个工具可以帮助您度过愉快的时光。请小心使用 Windows 字体查看器,因为它可能不会显示您需要查看的内容。下载免费的dp4 字体查看器

如果您打开 dp4 字体查看器并找到保存字体的文件夹,您将看到正确的字体名称。请注意下面屏幕截图中的字体系列名称。

在此输入图像描述

验证所需字体的文本

最后但并非最不重要的一点是,一些网站声称xaml设计器会立即显示字体中的文本,这将很容易测试。我这边会这样做。最终对我有帮助的是,将我的应用程序部署在我的目标上(在我的例子中是 RPI),并在应用程序在调试器中运行时更改 XAML。这些更改会立即反映在您正在运行的应用程序中。

最后,我可以看着我的屏幕并看到我的字体可视化

在此输入图像描述

我希望这会是有人!特别感谢 Breeze Liu 花时间帮助我!