在WPF中添加图标字体

8

我想在WPF中添加自定义图标。 我使用entypoFont-Awesome

我将此软件包添加到解决方案中并在XAML中使用它。

<UserControl.Resources>
    <Style x:Key="FontAwesome">
        <Setter Property="TextElement.FontFamily" Value="fonts/FontAwesome.ttf" />
    </Style>
</UserControl.Resources>


<TextBlock Text="&#xf01a;" Style="{DynamicResource FontAwesome}" />

但是不要显示图标。


<TextBlock Text="&#xf01a;" TextElement.FontFamily="fonts/FontAwesome.ttf" Style="{DynamicResource FontAwesome}" /> 这段代码正常工作吗?字体族是否被正确应用? - Sankarann
谢谢,我使用了这个但是没有显示图标,只显示一个矩形。我将Fonts文件夹(.eot,.svg,.ttf,.woff)添加到解决方案中,我需要进行特殊设置吗? - Niloo
2个回答

12

确保您的字体作为资源被添加。然后,使用以下字符串:

<Setter Property="TextElement.FontFamily" Value="pack://application:,,,/fonts/#FontAwesome" />
在上述字符串中,我假设字体的名称(而不是字体的文件名)是FontAwesome。

谢谢,我进入属性并选择字体文件的嵌入资源操作,并使用此值,但不显示: - Niloo
非常感谢,我已经删除了字体并重新添加,然后使用了这个值,现在没问题了 :) - Niloo
不要选择“嵌入式资源”,在这种情况下不支持。应该选择“资源”,虽然“内容”也是另一个可能的选择。 - terry

0

如果字体资源在您的解决方案文件夹中,您也可以使用以下结构:

<Setter Property="TextElement.FontFamily" Value="../fonts/FontAwesome.ttf" />

使用相对路径通常不是一个好主意——它依赖于你的XAML文件的位置。 - K Mehta
当然,我同意这个观点。但我的意思不是要让他感到困惑。只是有另外一种方法。 - Sankarann
您的“字体资源”是什么意思?我从http://fortawesome.github.io/Font-Awesome下载了字体,并将其放入解决方案的字体文件夹中。 - Niloo
似乎是字体文件的问题,我尝试使用从该位置下载的相同字体文件,但字体没有改变。最好使用任何文字处理软件检查字体文件并在此处使用。 - Sankarann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接