65.9K
CodeProject 正在变化。 阅读更多。
Home

WinForms FontAwesome 图像/图标生成器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.92/5 (23投票s)

2016年11月11日

CPOL
viewsIcon

59875

downloadIcon

2803

使用我的 WinForms FontAwesome 图像/图标生成器

引言

首先:非常感谢 Dave Gandy 的 Font Awesome 字体 - http://fontawesome.io

这是一个简单的类,用于从 FontAwesome TTF 文件创建图像和图标。

背景

有一些文章描述了在 WPF 中使用 FontAwesome 的方法。这里提供一些适用于老旧 WinForms 的方案。

(可选) 使用默认属性预设类。

//Sample default properties
FontAwesome.DefaultProperties.Size = 32;
FontAwesome.DefaultProperties.ShowBorder = true;

现在,我们可以开始创建图像和图标了

//create image using default properties
var image1 = FontAwesome.Type.Crosshairs.AsImage();

//create icon using default properties
var icon = FontAwesome.Type.Crosshairs.AsIcon();

//create image with custom properties
var image2 = new FontAwesome.Properties(FontAwesome.Type.Square) 
{ ForeColor = Color.White }.AsImage();

有时,需要更多功能,所以我添加了一些简单的图像堆叠支持

//sample of stacking images together to create colored unique icons
var stackedImage = 
    new FontAwesome.Properties(FontAwesome.Type.Square) { ForeColor = Color.White }.AsImage()
        .StackWith(new FontAwesome.Properties(FontAwesome.Type.FileO) 
         { Size = 20, Location = new Point(5, 5), ShowBorder = false })
        .StackWith(new FontAwesome.Properties(FontAwesome.Type.Close) 
         { ForeColor = Color.Red, Size = 14, Location = new Point(13, 13), ShowBorder = false });

FontAwesome 类甚至可以下载 TTF 文件

FontAwesome.Initialize(); //(optional) initiates TTF check and download

可以通过设置来禁用此行为

FontAwesome.SetDownloadLink(null);

要使用 C# 2.0 的类,只需删除 FontAwesomeExtensions 类即可。

//C# 2.0 usage sample
var image1 = FontAwesome.Instance.GetImage(FontAwesome.Type.Save);
var image2 = FontAwesome.Instance.GetImage(new FontAwesome.Properties(FontAwesome.Type.TimesCircle) 
             { ForeColor = Color.Red });
var icon = FontAwesome.Instance.GetIcon(new FontAwesome.Properties(FontAwesome.Type.Home) 
           { ForeColor = Color.Blue, BorderColor = Color.Blue, BackColor = Color.White });

注意GetIcon() 生成一个 GDI 对象,该对象不会自动释放。如果大量使用,可能会导致异常。有关详细信息,请参阅 MSDN 文章

Nuget

您可以使用 Nuget 将库添加到您的项目

PM> Install-Package Fkosoft.FontAwesome

对于新的 FontAwesome5,有一个新的 nuget 包

PM> Install-Package Fkosoft.FontAwesome5

关注点

  • C# 4.0, WinForms

历史

  • 1.0.0 - 首次版本
  • 1.0.1 - 添加了 FontAwesome5 nuget 包
© . All rights reserved.