1 private void Font_IsStyleAvailable() 2 { 3 Graphics graphics = CreateGraphics(); 4 graphics.Clear(Color.White); 5 6 Pen pen = new Pen(Color.Gray); 7 PointF pointf = new PointF(10.0f, 0.0f); 8 SolidBrush solidbrush = new SolidBrush(Color.Black); 9 Font mesfont = new Font("Arial", 12); 10 11 //调用PrivateFontCollection类读取私有字体 12 PrivateFontCollection privatefontcollection = new PrivateFontCollection(); 13 privatefontcollection.AddFontFile(@"C:/windows/fonts/simhei.ttf"); 14 privatefontcollection.AddFontFile(@"C:/windows/fonts/CourBI.ttf"); 15 privatefontcollection.AddFontFile(@"C:/windows/fonts/STLITI.ttf"); 16 17 string familyname = string.Empty; 18 string tmpmes = string.Empty; 19 20 int count = privatefontcollection.Families.Length; 21 FontFamily[] fontfamilies = new FontFamily[count]; 22 fontfamilies = privatefontcollection.Families; 23 24 for (int j = 0; j < count; j++) 25 { 26 familyname = fontfamilies[j].Name; 27 //判断字体的常规风格是否可用 28 if (fontfamilies[j].IsStyleAvailable(FontStyle.Regular)) 29 { 30 tmpmes = "字体的常规风格可用"; 31 FontFamily fontfamily = new FontFamily(familyname, privatefontcollection); 32 Font tmpfont = new Font(fontfamily, 12, FontStyle.Regular, GraphicsUnit.Pixel); 33 graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf); 34 pointf.Y += mesfont.Height; 35 } 36 else 37 { 38 graphics.DrawString(familyname + tmpmes + "字体的常规风格不可用", mesfont, solidbrush, pointf); 39 pointf.Y += mesfont.Height; 40 } 41 42 tmpmes = string.Empty; 43 //判断字体的粗体风格是否可用 44 if (fontfamilies[j].IsStyleAvailable(FontStyle.Bold)) 45 { 46 tmpmes = "字体的粗体风格可用"; 47 FontFamily fontfamily = new FontFamily(familyname, privatefontcollection); 48 Font tmpfont = new Font(fontfamily, 12, FontStyle.Bold, GraphicsUnit.Pixel); 49 graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf); 50 pointf.Y += mesfont.Height; 51 } 52 else 53 { 54 graphics.DrawString(familyname + tmpmes + " 字体的粗体风格不可用", mesfont, solidbrush, pointf); 55 pointf.Y += mesfont.Height; 56 } 57 58 tmpmes = string.Empty; 59 //判断字体的斜体风格是否可用 60 if (fontfamilies[j].IsStyleAvailable(FontStyle.Italic)) 61 { 62 tmpmes = "字体的斜体风格可用"; 63 FontFamily fontfamily = new FontFamily(familyname, privatefontcollection); 64 Font tmpfont = new Font(fontfamily, 12, FontStyle.Italic, GraphicsUnit.Pixel); 65 graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf); 66 pointf.Y += mesfont.Height; 67 } 68 else 69 { 70 graphics.DrawString(familyname + tmpmes + " 字体的斜体风格不可用", mesfont, solidbrush, pointf); 71 pointf.Y += mesfont.Height; 72 } 73 74 tmpmes = string.Empty; 75 //判断字体的下划线风格是否可用 76 if (fontfamilies[j].IsStyleAvailable(FontStyle.Underline)) 77 { 78 tmpmes = "字体的下划线风格可用"; 79 FontFamily fontfamily = new FontFamily(familyname, privatefontcollection); 80 Font tmpfont = new Font(fontfamily, 12, FontStyle.Underline, GraphicsUnit.Pixel); 81 graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf); 82 pointf.Y += mesfont.Height; 83 } 84 else 85 { 86 graphics.DrawString(familyname + tmpmes + " 字体的下划线风格不可用", mesfont, solidbrush, pointf); 87 pointf.Y += mesfont.Height; 88 } 89 90 tmpmes = string.Empty; 91 //判断字体的强调线风格是否可用 92 if (fontfamilies[j].IsStyleAvailable(FontStyle.Strikeout)) 93 { 94 tmpmes = "字体的强调线风格可用"; 95 FontFamily fontfamily = new FontFamily(familyname, privatefontcollection); 96 Font tmpfont = new Font(fontfamily, 12, FontStyle.Strikeout, GraphicsUnit.Pixel); 97 graphics.DrawString(familyname + tmpmes, tmpfont, solidbrush, pointf); 98 pointf.Y += mesfont.Height; 99 } 100 else 101 { 102 graphics.DrawString(familyname + tmpmes + " 字体的强调线风格不可用", mesfont, solidbrush, pointf); 103 pointf.Y += mesfont.Height; 104 } 105 106 graphics.DrawLine(pen, 0, (int)pointf.Y, 400, (int)pointf.Y); 107 pointf.Y += 10.0f; 108 } 109 110 }