Пользовательские стили шрифтов с графикой - PullRequest
1 голос
/ 10 января 2011

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

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

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

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

1 Ответ

5 голосов
/ 10 января 2011

Можно ли не просто использовать имя шрифта, как оно отображается на панели управления? Большинство шрифтов, которые не являются обычными, выделены жирным шрифтом или курсивом, в любом случае имеют подсемейный тип «обычный». Если вы скачали свойства шрифта *1002* от 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);
...