如何在WPF中使用icon [Font-awesome]

时间:2016-07-11 11:00:09

标签: wpf wpf-controls font-awesome

我是WPF的新手。我想在文本框和按钮中使用Font-awesome Icon。但图标未与我的文本框绑定

我将Font-awesome资源安装到我的应用程序中。

让我知道如何使用它

谢谢,

我真的需要它请帮帮我..

Example

第1步:下载Font-Awesome

工具 - >库包管理器 - >包管理器控制台 安装

PM>安装包FontAwesome.WPF

第2步:添加资源

<Application> xmlns:fa="http://schemas.fontawesome.io/icons/" </Application>

第3步:放入App.xaml

<Application.Resources>

    <Style x:Key="FontAwesome">
        <Setter Property="TextElement.FontFamily" Value="pack://application:,,,/fonts/#FontAwesome" />
    </Style>

</Application.Resources>

第4步:在Demo.xaml中使用

<TextBlock Style="{StaticResource FontAwesome}"
FontSize="75"
Text="&#xf133;" />

第5步: - 输出

My Output is this

4 个答案:

答案 0 :(得分:27)

首先,下载Font Awesome,解压缩ZIP文件并将fonts/fontawesome-webfont.ttf复制到解决方案的Fonts文件夹中。如果属性尚未

,则将属性中的“构建操作”设置为“资源”

enter image description here

接下来,在App.xaml中的资源中添加一个样式。不要忘记字体名称前面的#,并记住使用字体的内部名称,而不是文件的名称。要检查字体名称,只需双击字体文件,它将在Windows字体查看器中打开。字体名称将位于顶部。

enter image description here

<Application.resources>
<FontFamily x:Key="FontAwesome">/Fonts/fontawesome-webfont.ttf#FontAwesome</FontFamily>
</Application.resources>

打开MainWindow.xaml并将网格替换为以下代码段:

<Grid VerticalAlignment="Center" HorizontalAlignment="Center">

<StackPanel Orientation="Horizontal" >

<TextBlock Text="I" FontSize="32" Margin="10" VerticalAlignment="Center"></TextBlock>


<TextBlock x:Name="tbFontAwesome" Text="&#xf004;" FontFamily="{StaticResource FontAwesome}" Foreground="Red" FontSize="32" Margin="10" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="Font Awesome" FontSize="32" Margin="10" VerticalAlignment="Center"></TextBlock>

</StackPanel>

</Grid>

注意"Text"文本块的"tbFontAwesome"属性,Unicode的{​​{1}}。

Cheat Sheet

答案 1 :(得分:12)

要扩展已接受的答案,因为它有些过时且缺少信息,这就是我所做的:

  • 下载FontAwesome
  • 解压缩档案
  • 在解压缩的文件夹中,在use-on-desktop文件夹下,找到所需的版本。注: Solid拥有最多的免费图标;一些图标需要Pro支付Regular和Light版本。
    • 对我来说,这是Font Awesome 5 Free-Solid-900.otf
  • 根据接受的答案和大多数教程,首先在名为Fonts的C#项目中创建一个子文件夹。将字体文件粘贴到此文件夹中。
  • 为简洁起见,我重命名了此文件FontAwesome.otf
  • 设置此文件的属性:
    • 构建操作:资源
    • 复制到输出目录:如果更新/复制总是
    • 则复制
  • 在App.xaml <Application.Resources>或其他<ResourceDictionary>中,插入:
  • <FontFamily x:Key="FontAwesome">/YOUR_PROJECT_NAME;component/Fonts/FontAwesome.otf#Font Awesome 5 Free Solid</FontFamily>
    • 将YOUR_PROJECT_NAME替换为您的项目名称。我包含这个,因为如果你跨项目使用MergedDictionaries就需要它。
    • 如果您没有将文件放在项目子文件夹Fonts中,请重命名或省略路径的这一部分。
    • 检查文件名是否匹配:将FontAwesome.otf替换为文件名(或重命名文件本身)。
    • 检查内部字体名称。您可以按照接受的答案执行此操作。 (从资源管理器中打开.otf或.tff文件以启动Windows字体查看器,复制字体名称)。
    • 将Font Awesome 5 Free Solid替换为字体名称(在#之后)。
    • 请勿安装字体,否则无法验证是否已正确执行这些步骤,并且字体可能无法在未安装字体的计算机上运行。

答案 2 :(得分:4)

我知道这是一个老问题,当时您可能无法使用此选项,所以我想为那些偶然发现此问题的人提供一个更新的方法。我建议您从此处安装NuGet软件包“ FontAwesome5”:

FontAwesome5 on NuGet.org

或在Visual Studio的内置NuGet程序包管理器窗口中搜索“ fontawesome5”

工具> NuGet软件包管理器>管理用于解决方案的NuGet软件包...

-使用此确切搜索词时,通常是最高的结果。

然后只需将以下名称空间添加到您的XAML文档:

xmlns:fa5="http://schemas.fontawesome.com/icons/"

,然后在向项目添加图标时应该会相对容易一些。例如:

<fa5:ImageAwesome Icon="Solid_ExclamationTriangle" Foreground="#FFFF7400"/>

<fa5:FontAwesome Icon="Solid_ExclamationTriangle" Foreground="#FFFF7400"/>

这样做的好处是IntelliSense会向您显示所有可用图标的列表,从而省去了在网站上进行搜索的麻烦。

答案 3 :(得分:1)

您也可以从TextBlock的FontFamily属性中手动选择FontAwesome。这将解决问题。

如果FontAwesome不在字体列表中,那么您可能需要导入字体文件,就像建议的第一个答案一样。