【问题标题】:Layout problems when GUI font change for Chinese users中文用户 GUI 字体更改时的布局问题
【发布时间】:2013-03-31 21:31:42
【问题描述】:

我的新实用程序是用 C#/.Net 2.0/WinForms 构建的。我认为我没有更改任何字体设置,因此所有小部件都具有默认设置(Microsoft Sans Serif;出现 8,25pt)。现在它发布了,我看到中国网站发布了它的截图。显然他们得到了另一种字体。问题是这种字体是等宽的,不适合 GUI,如图所示:

问:处理这个问题的正确方法是什么? (为什么会这样?)

【问题讨论】:

  • 我应该补充一点,屏幕截图显示的是 WinXP,但我看到 Win7 屏幕截图有同样的问题......
  • 不要像 Echilon 建议的那样强迫用户更改字体。您只需对控件进行布局,使其大小自动缩放以适应字体和/或 DPI 的变化。该问题的解决方案是here,包括将控件放置在 TableLayoutPanel 和 FlowLayoutPanel 等容器控件中,并适当地设置它们的 Anchor 和 Dock 属性。这有点工作,但它确实工作

标签: .net internationalization


【解决方案1】:

好吧,这些 XP 用户的机器上没有安装 Microsoft Sans Serif。很难猜出原因,远程故障排除的几率乘以操作系统的使用年限再乘以他们为许可证付费的可能性得出的数字非常小。

在没有字体的情况下,字体映射器通过字体链接使用备用字体。明确设计用于关注东亚语言环境的功能。对于简体中文,回退是 SimSun -> PMingLiu -> MS UI Gothic -> Batang。对于繁体中文,它是 PMingLiu -> SimSun -> MS Mincho -> Batang。记录在this blog post

如您所知,SimSun 和 PMingLiU 都不会为西方字符生成漂亮的字形。并在 Microsoft Word 中进行测试。如果您与其中一位中国用户有良好的联系,那么值得一试 Tahoma。

【讨论】:

  • 奇怪。正如我在评论中所指出的,我已经看到 Vista/7 的屏幕截图存在同样的问题。考虑到 MS Sans Serif 是 .Net 的默认设置(?)为什么至少不与框架一起安装?
  • .NET 安装程序不安装 任何 Windows 字体。它们与 Windows 一起提供。
【解决方案2】:

我自己也遇到过这种情况。我相信,由于您在设计时设置的任何字体都缺乏 Unicode 支持,因此这些用户可能会默认使用该字体。根据this thread 的说法,使用SimSun 字体可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 2016-09-09
    • 2014-10-31
    • 1970-01-01
    • 2012-09-13
    • 2018-05-19
    相关资源
    最近更新 更多