如何添加图标字体?

时间:2015-05-10 15:55:37

标签: c# wpf fonts

我试图在我的wpf应用程序中包含图标字体,但我的图标永远不会出现,只显示一个矩形。

Projet结构:

MyProject/
  -- Fonts/
      -- myFont.ttf
  -- MyWindow.xaml

MyWindow.xaml

<Label Text="&#xea21;" 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="&#xea21;" Style="{StaticResource MyFont}" />

使用包URI

<Window.Resources>
    <Style x:key="MyFont">
        <Setter property="TextElement.FontFamily" value="v/Fonts/#myfont" />
    </Style>
</Window.Resources>

<Label Text="&#xea21;" Style="{StaticResource MyFont}" />

它们都不起作用。而且,最后一个(带有包URI)会产生错误。类似于&#34;索引超出范围错误&#34; (我的法语是VS,所以我不能用英语说出这个消息)。

我们已经尝试在互联网上找到解决方案,但我所能找到的只是使用包URI,或者检查字体名称是否正确,或者将Build Action设置为&#34;资源&#34;。< / p>

谢谢。

修改

我确切地说我不想使用Blend。我想设法直接在代码中完成它。谢谢。

1 个答案:

答案 0 :(得分:0)

Wpf支持嵌入字体 - 设置它们的最简单方法是通过字体系列属性为可视元素指定字体,例如标签。我通常使用混合(visual studio的一部分)来显示字体管理器按钮。然后,您可以从那里将字体嵌入到应用程序中。

否则MSDN会有一个详细介绍其他选项的页面。 https://msdn.microsoft.com/en-us/library/ms753303%28v=vs.110%29.aspx

如果编辑项目的.csproj文件并添加项目组...

&#13;
&#13;
  <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;
&#13;
&#13;

您需要一个带有.ttf文件的Fonts文件夹作为解决方案文件夹的一部分。这不是很好,但它可以在不依赖其他工具的情况下工作。