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; } }
Powered by: 博客园 Copyright © 2024 烈火123 Powered by .NET 8.0 on Kubernetes