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