2011-07-19 159 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

感謝您的幫助 –

相關問題