2013-07-09 21 views
0

我的問題調用一個方法如下:WPF:如何在一個特定的時間點,而動畫運行

直至消失我有一個動畫,這使得面板滑(我的動畫保證金屬性)。只要動畫結束,我希望面板可以回到起點的位置。所以我將autoreverse屬性設置爲true,動畫持續時間自動增加一倍,並且永久運行正常。問題是我仍然在我的程序中缺少一些基本的東西:當動畫中途運行時,即面板消失時,我必須進行一些處理,調用一個方法,這會使面板內容更改其UI。 那麼,有沒有辦法做到這一點?

感謝

+0

你可以嘗試使用開始在動畫開始定時器..... –

+2

你可以簡化事情:不要用自動翻轉。將動畫分爲兩部分:1)滑入,然後進行UI更改,2)滑出 – deafjeff

+0

這就是我現在所做的,我希望有更精簡的東西 – user2563777

回答

0

由於@deafjeff建議,你可以做2動畫,而不是使用自動翻轉。爲第一個動畫註冊Completed事件的處理程序。用戶界面是否改變並在hanlder代碼中啓動第二個動畫。代碼如下followig:

private void onFirstAnimationCompleted(object sender, EventArgs e) 
{ 
    DoUIChange(); 
    SecondAnimation.Start(); 
} 
+0

謝謝,但正如我所說這是我所做的,我問這個問題,因爲我會喜歡備用動畫。 – user2563777

+0

您仍然可以將這兩個動畫包裝在「Storyboard」中,並在動畫中爲幻燈片註冊「Completed EventHandler」。如果你堅持你的「自動反向」方式,你可以在任何你想要的時候使用DispatcherTimer來安排更新ui代碼,但我不認爲這是一個很好的解決方案。 – Dong

相關問題