WPF優化 Freezable凍結物件

2022-04-10 02:58:17 字數 1050 閱讀 2388

wpf

雖然很美觀,效果很炫,但是對資源的消耗也很大,尤其是初次接觸wpf

的人,因為很多地方雖然實現了想要的效果,但是由於經驗問題,所以也會造成很大的資源浪費,好的程式,需要更好的優化

。雖然可能只是節省了很少的一點資源,但是對整體程式執行的速度與穩定性來說,也許就起到了決定性的作用;每個地方都能做到一點優化

,那麼在成個程式中,優化

的效果就會很明顯,流暢、穩定,才是乙個程式的健康狀態。

在msdn上看到的這個說明「物件行為」,上面說到,每乙個solidcolorbrush

占用的大小,當凍結的時候,需要212位元組,未凍結的則需要972位元組,即使單位很小,但是差距還是非常大的,通常我們寫程式的時候,這類的物件都不會想到凍結它,當然,凍結的物件也意味著不能被修改,凍結等於唯讀。當solidcolorbrush

當成資源物件的時候,這個物件幾乎就是不會被修改的。所以,我們有必要在這種情況下將該物件凍結,已達到節省資源和優化程式的目的。轉殖的物件,就相當於對當前物件的解凍行為。

1 solidcolorbrush mybrush = new solidcolorbrush(colors.yellow);2//

如果可以凍結

3if (mybrush.canfreeze)

4 8 freezablebtn.background = mybrush;9//

判斷物件是否凍結

10if (mybrush.isfrozen)

11 18

else

19

上面這段程式對物件是否凍結做了驗證,如果需要修改,那麼,可以轉殖乙個物件對其進行修改。

在xaml檔案中建立的物件也有這個屬性。

1

<

solidcolorbrush

x:key

="mybrush"

presentationoptions:freeze

="true"

color

="red"

/>

繼續尋找其他的優化方法,爭取將程式做到快速且穩定。

WPF記憶體優化

之前的乙個wpf專案,執行時程式的占用記憶體總是不斷增長,最後能把電腦的記憶體空閒記憶體全部占用,程式變得越來越卡,使用者吐槽過好幾次了。看了看 一直都沒怎麼做過wpf,程式裡面大量的使用了定時器,全部是重複 可讀性較差,很多問題,先給了乙個鏈結 wpf 解決程式執行時間長後記憶體占用太大 可能是洩...

WPF 效能優化

wpf windows presentation foundation 是微軟推出的基於windows的使用者介面框架,執行在 net framework 3.0及以上版本。wpf是基於directx引擎的,支援gpu硬體加速,在不支援硬體加速時也可以使用軟體繪製。儘管wpf有諸多優點,有時我們還是...

WPF優化體驗《一》

最近將乙個開發和維護了五年的乙個winform專案進行重構,考慮到最近很流行將使用者體驗掛在嘴上,於是採用了wpf技術,希望能在外觀和體驗上有乙個全新的效果。以前使用winform的時候記憶體控制得不錯,軟體使用一天下來也就100m左右,現在使用wpf,十分鐘就達到了100m,在感慨wpf的胃口之餘...