C#如何使用ttf文件中的图标


在做CS开发的时候,经常会需要为按钮,或者一些控件添加一些图标。

如果使用image图片的方式,来为控件添加图标,比较麻烦(因为要费劲八力的搜各种图片,想办法下载下来,调整尺寸,甚至还需要PS处理一下)。

其实对于一些通用性的图标需求,完全可以用图标字体库,来解决。

比如微软提供的【Segoe fonts】图标库,下载下来就是一个ttf的文件。里面包含了很多常用的一些图标。

我们在想为控件添加图标的时候,可以很简单的通过修改控件的图标unicode码,来设置控件的图标。

下面以【Segoe fonts】为例,来简单说一下使用的步骤:

  • 下载【Segoe fonts】图标库文件
  • 解压出图标库压缩包之后,得到下列文件
  •  将上图中的【SegMDL2.ttf】文件,复制到项目中

  •  然后修改【SegMDL2.ttf】文件的属性,将其“生成操作”改为“资源”

  • 然后就可以在项目中使用这个ttf文件中的所有图标了 

  • 在WPF中,使用ttf图标时,分两种情况:
    •   第一种,直接前端XAML代码固定写好图标:
      •   
         <TextBlock FontFamily="pack://application:,,,/WPF_Blog_Test;component/Fonts/SegMDL2.ttf#Segoe MDL2 Assets"
                    FontSize="50"
                    Foreground="Red"
                    Text="" />

        后面的Text设定的是图标的unicode编码。其中【&#x】是XAML中,设定图标的前缀,后面的【E702】是图标的unicode编码

    •   第二种,在后台C#代码中动态调整控件的图标:
      •   
        this.Btn_MaxSize.Text = "\uE922";

        此处更改控件的图标的时候,就需要以【\u】为前缀,【\u】代表unicode编码。