2011-07-19 130 views
0

Silverlight在文本框中将几个中文字符显示为粗体。此文本框没有设置字体家族。请参考下面的截图中文字符以粗体显示

Chinese character showing in bold

在上面的截图,第一个字符是比另一个更大胆。其中一位MSDN职位说这是因为字体系列问题,并且设置SimSun字体系列应该解决该问题。这是应用字体系列之后的屏幕截图。

Simsun font family fixing it

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

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

我正在寻找适当的方法来解决这个问题。任何的意见都将会有帮助。

在.NET3.5中使用Silverlight 3。

+0

您已经安装了蹩脚的字体,主动请缨来渲染字形。不好。一般来说,要增大点的大小。当你支持东亚语言时非常重要。 –

回答

2

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

Wikipedia有一个Unicode字体列表,用于国际化文本字段(如您的)。也许给他们几个尝试,直到你找到一个满足你的需求。

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

+0

我期望渲染引擎足够聪明,可以检测语言并为该语言选择默认字体。情况并非如此吗?如果找不到字体,可能会回退到Arial或任何其他默认字体。 –

+0

这绝对有可能,但我不确定。最好是明确的,因为你不知道用户系统中包含了什么。另一个问题是您的字体对于呈现亚洲字形非常小,因此增加字体大小可能会对您有所帮助。 – Jordan

+0

感谢您的帮助 –

相关问题