Шрифты отсутствуют в WinForms.FontDialog - PullRequest
1 голос
/ 30 ноября 2008

Когда я отображаю экземпляр WinForms.FontDialog (C #, .NET 2.0), мне не хватает некоторых шрифтов, которые я ожидаю там (например, Courier, Fixedsys, MS Sans Serif). Кроме того, клиент жалуется, что установленные им шрифты Adobe также не отображаются в списке.

Как мне заставить эти шрифты отображаться в этом диалоге?

1 Ответ

4 голосов
/ 02 декабря 2008

FontDialog был разработан, чтобы показывать только шрифты TrueType, чтобы оставаться совместимым с GDI +. Чтобы показать шрифты устройства, нужно немного взломать Reflection:

using System.Reflection;

...

FontDialog fontDialog1 = new FontDialog();

MethodInfo mi = typeof(FontDialog).GetMethod("SetOption", 
    BindingFlags.NonPublic | BindingFlags.Instance);
        mi.Invoke(fontDialog1, new object[] { 0x40000, false });
fontDialog1.ShowDialog();

Я не знаю, включает ли это также шрифты Adobe OpenType, у меня их нет. Дайте нам знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...