Silverlight渲染速度提高方法介紹
Silverlight開發(fā)工具的推出對開發(fā)者來說是一個比較有用的工具。在使用的過程中我們就可以感受到其中強大的功能。如果你的silverlight 需要渲染大量的UI對象,你或許得為Silverlight渲染速度而憂慮。#t#
如果你的UI對象還綁定一個復(fù)雜的數(shù)據(jù)實體,那么你會為silverlight的渲染速度而抓狂。這究竟這是silverlight 這個東東本身的缺陷還是我們無意觸碰了潘多拉的魔盒?
我曾經(jīng)用微軟官方提供的一個silverlight樹控件來繪制一個六百多個節(jié)點的指標樹,為了讓代碼看上去很美,大量利用了silverlight 的一些特性,例如數(shù)據(jù)綁定,視覺狀態(tài),在xaml中進行數(shù)據(jù)轉(zhuǎn)換,等等,但是很不幸,結(jié)果是樹要同時展開一級節(jié)點的時候,需要停頓(UI失去響應(yīng))估計1s.由于客戶需要一個全部展開的功能以方便他更好的瀏覽這些指標就像他觀察股市波動一樣去了解他的公司運營情況,結(jié)果等待的時間估計得讓人抓狂。
為了提高Silverlight渲染速度,以下是微軟官方給的一些建議:
謹慎對 Silverlight 插件使用透明背景
對 UIElement 的不透明度或轉(zhuǎn)換進行動畫處理時設(shè)置其 CacheMode
對文本進行動畫處理時將 TextRenderingMode 設(shè)置為 RenderForAnimation
將使用不透明度對象和旋轉(zhuǎn)或拉伸對象的層混合時緩存可視元素
避免使用無窗口模式
盡可能使用 Visibility 而不是 Opacity
在全屏模式下隱藏未使用的對象
不要將 Width 和 Height 與 MediaElement 對象一起使用
不要將 Width 和 Height 與 Path 對象一起使用
將占用 CPU 資源較多的任務(wù)分解為較小的任務(wù)
分解非常大的應(yīng)用程序包
使用 Double.ToString(CultureInfo.InvariantCulture) 而不是 Double.ToString()
呈現(xiàn)大量圖像時使用 Stretch="Fill"。
以上就是Silverlight渲染速度的提升方法介紹。