我试图在我的wpf应用程序中包含图标字体,但我的图标永远不会出现,只显示一个矩形。
Projet结构:
MyProject/
-- Fonts/
-- myFont.ttf
-- MyWindow.xaml
MyWindow.xaml
<Label Text="" FontFamily="/Fonts/#myfont" />
&#34; myfont&#34;是字体的名称(我在&#34之后看到的字体;字体名称&#34;当我双击文件时)。文件的构建操作设置为&#34;资源&#34;。
我也尝试了以下内容:
使用样式
<Window.Resources>
<Style x:key="MyFont">
<Setter property="TextElement.FontFamily"/Fonts/#myfont" />
</Style>
</Window.Resources>
<Label Text="" Style="{StaticResource MyFont}" />
使用包URI
<Window.Resources>
<Style x:key="MyFont">
<Setter property="TextElement.FontFamily" value="v/Fonts/#myfont" />
</Style>
</Window.Resources>
<Label Text="" Style="{StaticResource MyFont}" />
它们都不起作用。而且,最后一个(带有包URI)会产生错误。类似于&#34;索引超出范围错误&#34; (我的法语是VS,所以我不能用英语说出这个消息)。
我们已经尝试在互联网上找到解决方案,但我所能找到的只是使用包URI,或者检查字体名称是否正确,或者将Build Action设置为&#34;资源&#34;。< / p>
谢谢。
修改
我确切地说我不想使用Blend。我想设法直接在代码中完成它。谢谢。
答案 0 :(得分:0)
Wpf支持嵌入字体 - 设置它们的最简单方法是通过字体系列属性为可视元素指定字体,例如标签。我通常使用混合(visual studio的一部分)来显示字体管理器按钮。然后,您可以从那里将字体嵌入到应用程序中。
否则MSDN会有一个详细介绍其他选项的页面。 https://msdn.microsoft.com/en-us/library/ms753303%28v=vs.110%29.aspx
如果编辑项目的.csproj文件并添加项目组...
<ItemGroup>
<BlendEmbeddedFont Include="Fonts\ahronbd.ttf">
<IsSystemFont>True</IsSystemFont>
<All>True</All>
<AutoFill>True</AutoFill>
<Uppercase>True</Uppercase>
<Lowercase>True</Lowercase>
<Numbers>True</Numbers>
<Punctuation>True</Punctuation>
</BlendEmbeddedFont>
</ItemGroup>
&#13;
您需要一个带有.ttf文件的Fonts文件夹作为解决方案文件夹的一部分。这不是很好,但它可以在不依赖其他工具的情况下工作。