我需要担心Winforms应用程序中的全球字体吗?

我需要担心Winforms应用程序中的全球字体吗?,winforms,unicode,fonts,internationalization,globalization,Winforms,Unicode,Fonts,Internationalization,Globalization,我希望我的软件能面向全世界的用户,因此我有点担心我的程序GUI(Winforms、.NET3.5、C#)中使用的字体 让我们假设我选择“Microsoft Sans Serif”作为所有选项(因为某些原因,我听说9号比默认的8.25号要好)。现在,我了解到当字符在Microsoft Sans Serif中不可用时,会自动使用“回退”字体。因此,一个本应为“Microsoft Sans Serif”的文本块可能同时使用“Arial Unicode MS”和“SimSun ExtB”。这三种字体似乎

我希望我的软件能面向全世界的用户,因此我有点担心我的程序GUI(Winforms、.NET3.5、C#)中使用的字体

让我们假设我选择“Microsoft Sans Serif”作为所有选项(因为某些原因,我听说9号比默认的8.25号要好)。现在,我了解到当字符在Microsoft Sans Serif中不可用时,会自动使用“回退”字体。因此,一个本应为“Microsoft Sans Serif”的文本块可能同时使用“Arial Unicode MS”和“SimSun ExtB”。这三种字体似乎涵盖了大部分基础

不幸的是,某些系统可能缺少一种或多种此类字体(或没有最新版本)。例如,Arial Unicode MS仅随Office提供。此外,WinXP(无SP)仅支持Microsoft Sans Serif-,而XP SP2使用,Vista/Server 2008使用。Microsoft Sans Serif的更高版本提供了改进的西里尔文、拉丁文和阿拉伯文支持

然而,我是否需要担心这一点?我可以假设这些类型的用户至少升级到XP SP2,或者如果升级失败,Winforms可以使用支持任何缺少字符的字体吗?当然,如果我的程序对他们出错,那么任何程序对他们来说都是错误的,所以也许他们有Winforms无论如何都会使用的合适字体(包括我没有列出的字体)


总之,如果我想覆盖至少90-95%的用户(家庭和企业),我可以在Winforms应用程序中使用Microsoft Sans Serif(大小9),而不用担心全球字体支持(由于自动字体回退)?请记住,事情并不一定要完美,因为我的应用程序更多的是一种阅读/显示类型的应用程序,而不是编辑类型的应用程序,尽管对于其他需要额外准确性的人来说,任何答案都可能涵盖这两种情况。

由于平台内置的字体回退机制以及,如果用户希望使用给定的语言,该用户将安装必要的语言支持组件,包括字体和IME


但是,在制作一个世界级的应用程序时,还有很多其他事情需要注意。有一本书涵盖了所有这些(但现在已经很老了)是微软的。您提到的其中一个问题是,需要使用更大的字体,以便汉字等字形清晰可见(这并不意味着您在所有语言中都需要更大的字体,但您需要为需要的语言增加字体大小)。另一个大问题是日期和数字的特定于语言环境的格式问题。有趣的是,资本化是特定于地区的,如所示。

是的,字体回退将为您解决此问题。您可以放心地假设本地用户将安装能够呈现其语言中使用的字形的字体。否则,这不会消除为用户提供本地化文本的需要。为了测试它。对,如果这是答案,我想我会勾选它!所谓“本地化文本”,我想你指的是我为菜单、标签、文档和标题等提供的文本,而不是他们拥有并导入到程序中的任何文本。嗯,谷歌“Winforms本地化”看看我在说什么。