WinForms.FontDialog中缺少字体
当我显示WinForms.FontDialog(C#,.NET 2.0)的实例时,我缺少一些我期望在那里的字体(例如Courier,Fixedsys,MS Sans Serif)。 此外,客户抱怨他安装的Adobe字体也没有出现在列表中。
如何在此对话框中显示这些字体?
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字体,我没有。 让我们知道。