2011-11-03 86 views
0

我有一個應用程序在高分辨率顯示器(1920x1080)上運行全屏。 約25%的屏幕是在屏幕上滾動圖像的StackPanel。 (X位置帶有雙動畫動畫)與WPF差StackPanel性能

滾動非常滯後和跳動,並且可見撕裂。 這是一款全新的運行Win7 64bit的高端遊戲筆記本電腦。

我不明白爲什麼表現如此糟糕。難道我做錯了什麼?這種動畫是在CPU還是GPU上運行的?是否有更智能的方法在屏幕上滾動圖像?

+2

你能告訴我們代碼嗎?他們是什麼樣的圖像?當這種情況發生時,你看到CPU使用率會上升嗎?你有沒有嘗試分析你的應用程序? – svick

+1

爲什麼使用StackPanel?嘗試使用網格或畫布。 –

+0

StackPanel中有多少物品?你是否在使用任何種類的UI Virutalization? – Rachel

回答

0

WPF可以進行硬件加速,但只適用於較新的視頻卡驅動程序。一些車載驅動程序會默認回到軟件渲染,這可能會感覺非常緩慢和笨重。至於撕裂,這是一種正常的視頻卡設置,稱爲V-Sync。我會嘗試將視頻卡驅動程序更新到專有的驅動程序(nVidia,AMD等),並在卡上啓用垂直同步。

您可以使用here解釋的方法檢查它是否屬於軟件或硬件渲染。

如果這樣不能解決問題,我唯一能想到的其他可能性就是您的動畫/渲染沒有同步到GUI。

請參閱this msdn文章瞭解更多詳情。

0

我已經看到可以解決此問題的一個訣竅是在您的頁面上放置一個3D對象,將其側面朝上並旋轉,例如,對於4張圖像,每個圖像都有一個立方體。 是的旋轉仍然需要GPU和處理器的時間,但它由WPF動畫內部照顧,因此不需要在設置滾動後與代碼交互。