2008-11-23 126 views
2

我正在製作一個應用程序,在桌面上滾動信息。該窗口是透明的。我開始簡單,試圖找到最低的CPU使用動畫的東西,我開始了一個簡單的TextBlock。奇怪的雜亂WPF動畫

在我的開發機器上,我通過使用DoubleAnimation設置Canvas.Left屬性在屏幕上獲得非常流暢的動畫。但是,在另一臺Vista電腦上,我每6到7秒就會產生一次1秒的延遲。在XP機器上,它再次非常流暢。我已經嘗試了3臺其他機器,其50%的好壞。我在所有機器上安裝了3.5 SP1。

系統上的CPU使用率永遠不會超過10%。我可以看到我沒有做任何軟件渲染。我桌面上的視頻卡是nVidia Geforce 7xxx系列,其中一臺波紋型機器使用的是nVidia Geforce 88xx卡。所有使用相同的驅動程序版本和最現代的。屏幕清晰度一般爲1920×1080,與我的開發機除外,它是更大(2560×1600)

無論其 - 如果我用穿孔器禁用髒區的支持 - 它是光滑的所有計算機上,但現在CPU在30%

我迷路了。簡陋就像發條一樣。機器上沒有其他事情發生,所有測試過的機器都是Core 2 Duos,大量的內存,最新的驅動程序,最新的Service Pack,我只是不知道還有什麼要做。我會期望更高的CPU使用率,而不是滯後。

回答

3

如果使用AllowsTransparency屬性,將會出現性能和兼容性問題。

技術的解釋是在這裏:

http://blogs.msdn.com/dwayneneed/archive/2008/09/08/transparent-windows-in-wpf.aspx

從我個人的(痛苦)經歷一些顯示器驅動程序要傷你的程序和其他人將讓Windows運行不正常,當你有一個在屏幕上WPF透明窗口很長一段時間,我建議您嘗試重新編寫GUI以不使用透明度。

0

我與我最近使用WPF創建的程序有一個非常類似的問題。它在運行Windows Server 2003的構建機器上工作正常,但是當我將它切換到具有足夠資源運行程序的XP機器時,它變得非常波濤洶涌。基本上它每秒獲得一幀。動畫將每走動一次。我聽說過這個問題,它在動畫完成一個循環後(通過動畫)消失,但對我來說,它永遠保持這樣的狀態。

而我沒有使用AllowsTransparency屬性,所以如果任何人有任何想法,我會非常感激。

感謝(它的失敗上也是Core 2 Duo處理器的機器), 埃裏克

0

好吧,我只是發表我以前的發言後,解決了這個問題。事實證明,我還沒有在這臺電腦上安裝我的圖形驅動程序,並且在我開始工作之後,它開始工作得非常順利。也許它以前使用了一些軟件圖形渲染或其他東西。因此,我建議您將圖形驅動程序更新到最新版本,以查看是否有助於解決問題。原來的海報似乎有一個不同的問題,但是,因爲它似乎他有他的FX司機正確安裝。我不確定使用DirectX的nvidia 8800顯卡是否有問題。

謝謝, 埃裏克