我正在为我的winforms应用程序使用Segoe UI。
在XP上,此字体不存在,我希望我的应用程序使用Verdana。
实现这一目标的最佳方式是什么。
答案 0 :(得分:3)
最好使用默认(系统)字体来实现本机外观。所以Vista使用'Sergoe UI'作为默认字体,而XP则使用'Tahoma'(不是'Verdana')。要获取默认对话框字体,请使用SystemFonts类:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Font = SystemFonts.DialogFont;
}
答案 1 :(得分:0)
你想要的是这样的:
Font GetUIFont()
{
Font testFont = new Font("Segoe UI", 10f);
if (testFont.Name == "Segoe UI")
return testFont;
else
return new Font("Verdana", 10f);
}
答案 2 :(得分:0)
从JasonH的解决方案开始,包括关于从Form派生的部分。如果您的控件没有自动继承Form的字体,请在表单具有所有控件时调用此代码:
foreach (Control ctl in this.Controls)
{
ctl.Font = GetUIFont();
}