读取私有字体信息并进行相关判断

private void Font_IsStyleAvailable()
        {
            Graphics graphics = CreateGraphics();
            graphics.Clear(Color.White);

            Pen pen = new Pen(Color.Gray);
            PointF pointf = new PointF(10.0f, 0.0f);
            SolidBrush solidbrush = new SolidBrush(Color.Black);
            Font mesfont = new Font("Arial", 12);

            //调用PrivateFontCollection类读取私有字体
            PrivateFontCollection privatefontcollection = new PrivateFontCollection();
            privatefontcollection.AddFontFile(@"C:/windows/fonts/simhei.ttf");
            privatefontcollection.AddFontFile(@"C:/windows/fonts/CourBI.ttf");
            privatefontcollection.AddFontFile(@"C:/windows/fonts/STLITI.ttf");

            string familyname = string.Empty;
            string tmpmes = string.Empty;

            int count = privatefontcollection.Families.Length;
            FontFamily[] fontfamilies = new FontFamily[count];
            fontfamilies = privatefontcollection.Families;

            for (int j = 0; j < count; j++)
            {
                familyname = fontfamilies[j].Name;
                //判断字体的常规风格是否可用
                if (fontfamilies[j].IsStyleAvailable(FontStyle.Regular))
                {
                    tmpmes = "字体的常规风格可用";
                    FontFamily fontfamily = new FontFamily(familyname, privatefontcollection);
                    Font tmpfont = new Font(fontfamily, 12, FontStyle.Regular, GraphicsUnit.Pixel);
                    graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }
                else
                {
                    graphics.DrawString(familyname + tmpmes + "字体的常规风格不可用", mesfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }

                tmpmes = string.Empty;
                //判断字体的粗体风格是否可用
                if (fontfamilies[j].IsStyleAvailable(FontStyle.Bold))
                {
                    tmpmes = "字体的粗体风格可用";
                    FontFamily fontfamily = new FontFamily(familyname, privatefontcollection);
                    Font tmpfont = new Font(fontfamily, 12, FontStyle.Bold, GraphicsUnit.Pixel);
                    graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }
                else
                {
                    graphics.DrawString(familyname + tmpmes + " 字体的粗体风格不可用", mesfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }

                tmpmes = string.Empty;
                //判断字体的斜体风格是否可用
                if (fontfamilies[j].IsStyleAvailable(FontStyle.Italic))
                {
                    tmpmes = "字体的斜体风格可用";
                    FontFamily fontfamily = new FontFamily(familyname, privatefontcollection);
                    Font tmpfont = new Font(fontfamily, 12, FontStyle.Italic, GraphicsUnit.Pixel);
                    graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }
                else
                {
                    graphics.DrawString(familyname + tmpmes + " 字体的斜体风格不可用", mesfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }

                tmpmes = string.Empty;
                //判断字体的下划线风格是否可用
                if (fontfamilies[j].IsStyleAvailable(FontStyle.Underline))
                {
                    tmpmes = "字体的下划线风格可用";
                    FontFamily fontfamily = new FontFamily(familyname, privatefontcollection);
                    Font tmpfont = new Font(fontfamily, 12, FontStyle.Underline, GraphicsUnit.Pixel);
                    graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }
                else
                {
                    graphics.DrawString(familyname + tmpmes + " 字体的下划线风格不可用", mesfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }

                tmpmes = string.Empty;
                //判断字体的强调线风格是否可用
                if (fontfamilies[j].IsStyleAvailable(FontStyle.Strikeout))
                {
                    tmpmes = "字体的强调线风格可用";
                    FontFamily fontfamily = new FontFamily(familyname, privatefontcollection);
                    Font tmpfont = new Font(fontfamily, 12, FontStyle.Strikeout, GraphicsUnit.Pixel);
                    graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }
                else
                {
                    graphics.DrawString(familyname + tmpmes + " 字体的强调线风格不可用", mesfont, solidbrush, pointf);
                    pointf.Y += mesfont.Height;
                }

                graphics.DrawLine(pen, 0, (int)pointf.Y, 400, (int)pointf.Y);
                pointf.Y += 10.0f;
            }

        } 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值