2011-01-10 4 views
1

У меня есть следующий список шрифтов: Font listПользовательские стили шрифтов с графикой

У меня нет никаких проблем с их помощью через

new Font("XXXX Sans", 21, FontStyle.Bold, GraphicsUnit.Pixel) 

Однако то, что я делаю, когда мне нужно использовать не -стандартный стиль шрифта, как свет? Все, что предоставляется, - это перечисление, и это не подходит.

ответ

5

Можете ли вы не просто использовать имя шрифта, как оно отображается на панели управления? Большинство шрифтов, которые не являются регулярными, полужирным шрифтом или курсивом, в любом случае имеют подсемейный тип «обычный». Если вы загрузите font properties extensions из Microsoft, вы можете увидеть это на вкладке «Имена». То, как контрольные панели перечисляют их и так, что .Net знает о них иногда отличаются поэтому его хорошая идея, чтобы перечислить все шрифты с точки зрения .NET в:

 var installed_fonts = new InstalledFontCollection(); 
     var families = installed_fonts.Families; 
     var allFonts = new List<string>(); 
     foreach(FontFamily ff in families){ 
      allFonts.Add(ff.Name); 
     } 
     allFonts.Sort(); 
     foreach(String s in allFonts){ 
      Console.WriteLine(s); 
     } 

А вот пример, который использует Franklin Gothic Demi Cond (который указан в CP как «Franklin Gothic Cond Demi»)

e.Graphics.DrawString("Test", new Font("Franklin Gothic Demi Cond", 12), new SolidBrush(Color.Red), 25, 25); 
+0

Это решило его, спасибо! – Hawxby

Смежные вопросы