silverlight1像素問題 silverlight一像素問題(譯)

你可能注意到當我們創建一個1px 粗的line,在silverlight裏的渲染結果往往明顯不是1px,而是比1px粗。

注:在WPF 裏可以設置SnapToDevice="True" 但是silverlight裏沒有SnapToDevice屬性


<Line X1="10" Y1="20" X2="200" Y2="20" StrokeThickness="1" Stroke="Red" />


我們寫的StrokeThickness="1" 但是實際效果如上。

如何解決這個問題,有一個簡單的解決辦法。就是使用RenderThansform

<Line X1="10" Y1="20" X2="200" Y2="20" StrokeThickness="1" Stroke="Red" >

<Line.RenderTransform>

  <TranslateTransform X="0.5" Y="0.5" />

</Line.RenderTransform>

</Line>

效果如下:


可以看到線基本變成了1px寬。但是實際測試中發現如果 Canvas 有縮放,又會有線寬變化。

說到底Silverlight的渲染環境還是有些實際問題。像之前比較著名的字體渲染髮虛的問題,後面字體倒是有所改進,但是其他問題依舊。 

難道Silverlight的渲染是參照遊戲引擎或者什麼結構來設計的?









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章