歡迎您光臨本站 註冊首頁

[Silverlight]奇技銀巧系列-6 使用點陣字體(如宋體)及相關方面的技巧

我們知道,Silverlight的默認中文字體是【雅黑】,它是一種矢量字體,有點是可以保證在文字大小變化時也不失真。但是它的效果真的如我們想想中那麼好嗎?
我們做一個實驗,一段簡單的XAML<TextBlock FontSize="14" Text="我是宋體嗎ABC?" Margin="30"/>

效果如下圖:
http://www.024hi.com/Images/cnblogs/Silverlight_D27F/image_thumb.png
看起來還可以,但是做過實際項目開發的各位都清楚,sl中雅黑下的某些字比如:「增」字一類的字變形的比較厲害(雖然sl3有了明顯的改善),這很難讓我們這些經常和宋體等標準中文字體打交道的人接受。
群里經常有人問:「為啥sl的字體那麼模糊啊。sl不能用宋體,真爛!」等等。
其實sl中是絕對可以使用點陣字體的,只不過這個技巧大部分人不太清楚而已。
我們設置一下XAML的FontFamily屬性
<TextBlock FontSize="14" FontFamily="SimSun" Text="我是宋體嗎ABC?" Margin="30"/>

看效果
http://www.024hi.com/Images/cnblogs/Silverlight_D27F/image_thumb_3.png
怎麼樣?標準的宋體吧!關鍵就在於FontFamily的值應該是「SimSun」而不是「宋體」。
不過到了這裡,這個解決方案還不是很完美。我們仔細看「ABC」這三個英文,還不如默認的好看呢。這個具體我也不大清楚,不過要解決這個問題我們只需顯式的設置英文(比如Arial)字體就可以了。具體設置方法看XAML<TextBlock FontSize="14" FontFamily="Arial,SimSun" Text="我是宋體嗎ABC?" Margin="30"/>
看效果
http://www.024hi.com/Images/cnblogs/Silverlight_D27F/image_thumb_4.png
恩,很完美了哦。
注意FontFamily的順序和設置方法:兩種字體見要以半形逗號(,)分割,而且英文字體必須寫在中文字體之前。
OK,希望對大家有用。

[火星人 ] [Silverlight]奇技銀巧系列-6 使用點陣字體(如宋體)及相關方面的技巧已經有303次圍觀

http://coctec.com/docs/service/show-post-2634.html