2013-03-21 69 views
11

WPF如何在高度不穩定的應用程序中優化佈局/渲染週期?WPF如何優化佈局/渲染週期?

例如,假設我快速連續兩次使自定義控件無效,它會渲染兩次嗎?數據/屬性更新速度快於主要渲染速度時,是否存在性能問題?

回答

7

根據我的經驗,我可以說不,如果速度足夠快,它不會渲染兩次。我不是100%肯定的,但這就是爲什麼我這樣認爲:

我們有一個非常沉重的應用程序(數千個控件),它是一個飛機駕駛艙,全部在wpf中,每個按鈕,開關,屏幕都是可通過手勢或鼠標移動。

駕駛艙是10,000個像素×10 000像素,並實現了放大/縮小(鼠標滾輪),平移時單擊鼠標右鍵。

優化之前,它是非常laggy,速度慢,所以每個「縮放」步驟,即「潘」的步驟了約1秒

如果我放大1倍(變焦* 1.2爲例),花了1第二個

如果我縮放10次(縮放* 1.2 X 10),它不需要10秒,取決於您滾動的速度,它可能需要2秒,並且它不渲染它呈現的每個「縮放步驟」只有最後一個...

+0

哇.... 10k x 10k ...與變焦和數千控件...這是一個helluva UI .. – 2013-03-21 15:27:31

+1

種讓我有點害怕進入飛機...... – Charleh 2013-03-21 15:35:31

+0

這個駕駛艙僅用於基礎訓練,學生可以在沒有真正駕駛艙的情況下「駕駛」到駕駛艙中,當教師講解面板時,在訓練課中使用,解釋女巫按鈕做這個和那個......它不用於一個完整的模擬 – mlemay 2013-03-21 15:42:34