WinForms FontAwesome 图像/图标生成器






4.92/5 (23投票s)
使用我的 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 包