中文字符以粗体显示

时间:2011-07-19 21:52:55

标签: c# .net wpf silverlight internationalization

Silverlight在文本框中将很少的中文字符呈现为粗体。此文本框上没有设置字体系列。请参阅以下屏幕截图

Chinese character showing in bold

在上面的屏幕截图中,第一个字符比另一个字符更大。其中一篇MSDN帖子说这是因为字体系列问题而且设置SimSun字体家族应该解决问题。这是应用字体系列后的屏幕截图。

Simsun font family fixing it

看起来设置SimSun实际上是在修复问题。但我不确定这是否是正确的修复,因为我的应用程序允许以任何语言而不仅仅是中文输入数据。所以我不想将字体系列设置为中文字体。

我想知道,由于数据是Unicode(UTF16)编码,渲染引擎应该注意选择正确的字体并正确渲染它吗?

我正在寻找解决此问题的正确方法。任何建议都会有所帮助。

将Silverlight 3与.NET3.5配合使用。

1 个答案:

答案 0 :(得分:2)

问题在于字体对自身的描述。根据您的计算机,您的默认字体可能是Arial,这可能无法很好地呈现一些中文字符。 SimSun是一种用于渲染中文字符的字体,因此就像基于拉丁语的字体倾向于很好地渲染英文一样,SimSun可以更好地渲染汉字。

Wikipedia有一个Unicode字体列表,适用于您的国际化文本字段。也许可以尝试一些,直到找到满足您需求的产品。

http://en.wikipedia.org/wiki/Unicode_typeface#List_of_Unicode_fonts