Microsoft Sans Serif字体未在中文本地化Windows中使用

Tod*_*odK 4 c# localization windows-7 winforms

场景:

与"中文"Windows 7企业版相比,UI界面元素在美国英语Windows 7企业版上使用不同的字体,即使所有本地化包和语言都设置为英语.在WinForms代码隐藏中,FontFamily未明确定义并依赖于默认值.

英语:

英语

中文:

中文

几个问题:

1)中文Windows使用的字体是什么?
2)这种安装有什么不同会导致它使用该字体?
3)如何设置复制环境?它是Windows 7上的安装时选项,在已安装的Windows 7实例上切换UI和System Culture时无法获得吗?

FWIW:

我检查了C:\ Windows\Fonts,它的版本和大小与"Microsoft Sans Serif Regular"相同

Paw*_*yda 5

如果你没有对你的字体做任何事情,默认的字体回退机制可能会使用SimSun作为标准字体的字体替换.

替换字体的原因是中文操作系统上的默认字体需要显示中文字符.当然,由于规模庞大,MS Sans Serif没有定义中文字形.

为避免此问题,您可能希望在资源文件中"硬编码"字体信息 - 通常简单的大小修改(即设置9而不是8.25)会有所帮助.请注意,但如果你这样做,中文字符可能会出现损坏 - 如果我没记错,它将完全关闭字体后退机制.它可能适用于不会被翻译成中文的"静态"UI元素,但对于允许用户输入自由格式文本的文本框和类似控件来说是完全不可接受的.

而不是解决渲染问题,最好让它通过.我确信中国用户只是习惯于那种特定的外观和感觉.