WPF:条形码字体错误?
WPF : Barcode font bug?
情况
-我在我的 WPF 应用程序中创建了一个文件夹 "Fonts",并添加了 5 种字体,如您所见。
-然后我在我的资源中添加了字体。
XAML(我试过写 pack:app,.. 但没用)
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<FontFamily x:Key="Default">/Design/Fonts/#arial</FontFamily>
<FontFamily x:Key="Rounded">/Design/Fonts/#BUNGASAI</FontFamily>
<FontFamily x:Key="BarcodeCode39">/Design/Fonts/#Code39r</FontFamily>
<FontFamily x:Key="Barcode3of9X">/Design/Fonts/#FRE3OF9X</FontFamily>
<FontFamily x:Key="Barcode3of9">/Design/Fonts/#FREE3OF9</FontFamily>
</ResourceDictionary>
问题
问题是它非常适合 Arial 和 Bungasai 或其他普通字体,但每当我尝试使用这些 "barcode" 字体时,它就会显示 arial 字体。
可能有相关信息
这就是我在
中使用字体的方式
XAML
无效:
<TextBlock Name="BarcodeContent"
FontFamily="{StaticResource BarcodeCode39}"/>
完美运行:
<TextBlock Name="BarcodeContent"
FontFamily="{StaticResource Rounded}"/>
当使用 ttf 文件时,您使用的字体名称(# 之后)就是字体名称。可以,但不一定与文件名相同。
例如
我们的游戏使用了一些自定义的维多利亚风格字体。其中之一是 ephinol.ttf.
如果我在文件资源管理器中右键单击 ephinol.ttf 文件并选择预览,我会看到一个字体对话框,其中包含不同大小的字体示例。
顶部是字体的全名。
这是 Ephinol WF。
因此我会使用#Ephinol WF 而不是#Ephinol
但是,我不会那样做。
我现在做的是安装字体文件。然后我不需要使用包符号来使用字体。我这样做是为了保证没有内存泄漏。
否则我想使用完整的文件路径或另一轮工作(参见 link)。
这是一个很小的内存泄漏,但它是每次使用。
https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/issues/746
情况
-我在我的 WPF 应用程序中创建了一个文件夹 "Fonts",并添加了 5 种字体,如您所见。
-然后我在我的资源中添加了字体。
XAML(我试过写 pack:app,.. 但没用)
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<FontFamily x:Key="Default">/Design/Fonts/#arial</FontFamily>
<FontFamily x:Key="Rounded">/Design/Fonts/#BUNGASAI</FontFamily>
<FontFamily x:Key="BarcodeCode39">/Design/Fonts/#Code39r</FontFamily>
<FontFamily x:Key="Barcode3of9X">/Design/Fonts/#FRE3OF9X</FontFamily>
<FontFamily x:Key="Barcode3of9">/Design/Fonts/#FREE3OF9</FontFamily>
</ResourceDictionary>
问题
问题是它非常适合 Arial 和 Bungasai 或其他普通字体,但每当我尝试使用这些 "barcode" 字体时,它就会显示 arial 字体。
可能有相关信息
这就是我在
中使用字体的方式XAML
无效:
<TextBlock Name="BarcodeContent"
FontFamily="{StaticResource BarcodeCode39}"/>
完美运行:
<TextBlock Name="BarcodeContent"
FontFamily="{StaticResource Rounded}"/>
当使用 ttf 文件时,您使用的字体名称(# 之后)就是字体名称。可以,但不一定与文件名相同。
例如
我们的游戏使用了一些自定义的维多利亚风格字体。其中之一是 ephinol.ttf.
如果我在文件资源管理器中右键单击 ephinol.ttf 文件并选择预览,我会看到一个字体对话框,其中包含不同大小的字体示例。
顶部是字体的全名。
这是 Ephinol WF。
因此我会使用#Ephinol WF 而不是#Ephinol
但是,我不会那样做。
我现在做的是安装字体文件。然后我不需要使用包符号来使用字体。我这样做是为了保证没有内存泄漏。
否则我想使用完整的文件路径或另一轮工作(参见 link)。
这是一个很小的内存泄漏,但它是每次使用。
https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/issues/746