C# WinForms.FontDialog中缺少字体
当我显示WinForms.FontDialog(C#,.NET 2.0)的实例时,我丢失了一些我希望出现的字体(例如Courier、Fixedsys、MS Sans Serif)。此外,一位客户抱怨他安装的Adobe字体也没有出现在列表中C# WinForms.FontDialog中缺少字体,c#,winforms,fonts,C#,Winforms,Fonts,当我显示WinForms.FontDialog(C#,.NET 2.0)的实例时,我丢失了一些我希望出现的字体(例如Courier、Fixedsys、MS Sans Serif)。此外,一位客户抱怨他安装的Adobe字体也没有出现在列表中 如何使这些字体显示在此对话框中?FontDialog旨在仅显示TrueType字体,以保持与GDI+兼容。让它显示设备字体需要一些反射黑客: using System.Reflection; 我不知道这是否也支持Adobe的OpenType字体,我没有。让
如何使这些字体显示在此对话框中?FontDialog旨在仅显示TrueType字体,以保持与GDI+兼容。让它显示设备字体需要一些反射黑客:
using System.Reflection;
我不知道这是否也支持Adobe的OpenType字体,我没有。让我们知道。这会不会引发“无效字体异常”,因为GDI+只支持true type字体。当然,预期OP会对其进行其他处理。是否有任何覆盖,以便字体对话框仅显示有效的true type字体。
FontDialog设计为仅显示TrueType字体,以保持与GDI+兼容。
FontDialog fontDialog1 = new FontDialog();
MethodInfo mi = typeof(FontDialog).GetMethod("SetOption",
BindingFlags.NonPublic | BindingFlags.Instance);
mi.Invoke(fontDialog1, new object[] { 0x40000, false });
fontDialog1.ShowDialog();