2009-01-26 123 views
0

我想學習WPF的動畫,我目前由不少東西迷惑:WPF新手問題

我用像處理,在這裏你有一個簡單的方法,它是N每分鐘次調用,其中n工具是幀率。

在WPF中執行動畫的方法是修改屬性。如果我使用DoubleAnimation,那麼隨着動畫的進行,雙倍增加。但這不完全是我想要的。我希望在每個循環中增加一些屬性,一些是隨機修改的,一些是通過用戶交互進行修改的。我怎樣才能在WPF中做到這一點?

什麼也令我困惑的事實是,WPF支持多個動畫在同一時間。這個怎麼用?是否有每個動畫的線程或只有一個動畫的線程。

前段時間我用c#用gdi。我甚至可以使用多個線程進行繪製;據我記得我只需要插入一些隊列中的所有繪圖命令,然後窗口照顧他們..我不知道如何處理WPF。

回答

3

在基本級別上,WPF動畫與其他任何類型的動畫一樣:在內部定時器打勾並修改某些屬性,這些屬性在繪製到屏幕時會導致畫面不同。

WPF會爲您做所有的腿部工作,以便能夠指定相對於掛鐘時間的動畫,例如「將框以每秒3毫米向左移動」。對於更復雜的場景,您可能需要編寫自己的動畫,請參閱MSDN上的Custom Animation Overview文章。

關於線程,WPF的工作方式與GDI相同:有一個Thread可處理與WPF模型的所有交互,如果您正在此線程上運行,則只能與WPF控件交談。如果您是免費的線程,您可以使用Dispatcher將代碼「發送」至此線程。對DirectX的實際繪製是在單獨的線程中完成的,但這對API的臨時用戶來說並不重要。

+0

我認爲自定義動畫是我正在尋找.. thx的快速回答! – Nils 2009-01-26 13:40:28

0

通過將它們放入StoryBoard中,您可以同時運行多個動畫。

您可以使用動畫的BeginTime來獲取一個接一個的動畫。

您可以使用關鍵幀版本(DoubleAnimationUsingKeyFrames)或路徑版本(DoubleAnimationUsingPath)來創建複雜的非線性動畫。