WinForms.FontDialog中缺少字体

时间:2008-11-30 19:37:58

标签: c# winforms fonts

当我显示WinForms.FontDialog(C#,.NET 2.0)的实例时,我缺少一些我期望在那里的字体(例如Courier,Fixedsys,MS Sans Serif)。此外,客户抱怨他安装的Adobe字体也没有出现在列表中。

如何在此对话框中显示这些字体?

1 个答案:

答案 0 :(得分:4)

FontDialog旨在仅显示TrueType字体以保持与GDI +兼容。让它显示设备字体需要一点反射黑客攻击:

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字体,我没有。请告诉我们。