c# 怎么使用资源字体?

用vs2008,自己弄的一个程序里面需要用到的字体已经从系统的font文件夹里面copy出来并作为资源导入到程序里面了,如图..但是不知道该怎么使用这些字体,请高手指教!... 用vs2008,自己弄的一个程序里面需要用到的字体已经从系统的font文件夹里面copy出来并作为资源导入到程序里面了,如图..

但是不知道该怎么使用这些字体,请高手指教!!
展开
 我来答
dkxpsg
2010-04-24 · TA获得超过1628个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1054万
展开全部

你可以直接从资源文件里把它读出来或者,把资源文件里的字体文件保存到本地,然后在加载,如下Runic和Torchlight_Regular是字体文件

using System.Runtime.InteropServices;

using System.IO;

using System.Drawing.Text;

        private void button1_Click(object sender, EventArgs e)

        {

            GCHandle hObject = GCHandle.Alloc(Properties.Resources.Runic, GCHandleType.Pinned);

            IntPtr intptr = hObject.AddrOfPinnedObject();

            PrivateFontCollection privateFontCollection = new PrivateFontCollection();

            privateFontCollection.AddMemoryFont(intptr, Properties.Resources.Runic.Length);//从内存加载

            File.WriteAllBytes("D:\\Torchlight_Regular.ttf", Properties.Resources.Torchlight_Regular);

            privateFontCollection.AddFontFile("D:\\Torchlight_Regular.ttf");//从文件加载

            Font font1 = new Font(privateFontCollection.Families[0], 20);

            Font font2 = new Font(privateFontCollection.Families[1], 20);

            Graphics g = this.CreateGraphics();

            g.DrawString("Hello World", font1, Brushes.Black, new PointF(10, 10));

            g.DrawString("Hello World", font2, Brushes.Black, new PointF(10, 40));

            g.Dispose();

            font1.Dispose();

            font2.Dispose();

            if (hObject.IsAllocated)

                hObject.Free();

            privateFontCollection.Dispose();

        }

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式