WinFrom显示字体库(iconfont.ttf)矢量图标,并将字体库文件和程序生成在同一个文件中

视频教程 https://www.bilibili.com/video/BV1F64y1b7nv (如果不会请看我录制的视频教程)


显示样例

核心源码

public class IconfontHelper
{
    public static System.Drawing.Text.PrivateFontCollection PFCC
    {
        get
        {
            return pfcc ?? LoadFont();
        }
    }
    //提供一个字体系列集合,该集合是基于客户端应用程序提供的字体文件生成的。
    private static System.Drawing.Text.PrivateFontCollection pfcc;
    private static System.Drawing.Text.PrivateFontCollection LoadFont()
    {
        pfcc = new System.Drawing.Text.PrivateFontCollection();
        byte[] fontData = Properties.Resources.iconfont;//添加到资源里面的字体库文件

        unsafe
        {
            fixed (byte* pFontData = fontData)
            {
                pfcc.AddMemoryFont((IntPtr)pFontData, fontData.Length);
            }
        }
        return pfcc;
    }
}
调用显示到winfrom控件上,代码如下
void LoadLbl()
{
    label1.Font = new Font(IconfontHelper.PFCC.Families[0], 60);
    button1.Font = new Font(IconfontHelper.PFCC.Families[0], 60);
    button2.Font = new Font(IconfontHelper.PFCC.Families[0], 30);
    label1.Text = "\ue829";
    label1.ForeColor = Color.Red;
    button1.Text = "\ue686 测试";
    button1.ForeColor = Color.Blue;
    button2.Text = "\ue686\ue61e查找";
}

注意以下属性里面的设置

源码下载地址: https://pan.baidu.com/s/1bdHuFZrJj7KFzTg_3jfvaA 提取码: ck59



评论