2013-11-02 60 views
-1

我已經在方法中啓動了一個動畫,稍後我將不得不停止它並立即完成,如果尚未完成的話。如何即時完成動畫,如果尚未完成?

Vector diff = ... 
DoubleAnimation aniX = new DoubleAnimation(diff.X, TimeSpan.FromSeconds(0.4)); 
DoubleAnimation aniY = new DoubleAnimation(diff.Y, TimeSpan.FromSeconds(0.4)); 

aniXaniY被停止,如果他們沒有完成。

+0

Downvoter,請告訴我判斷的原因... – HerpDerpington

回答

1

我認爲你應該使用XAML代碼與一些附加的Trigger來阻止它。以編程方式停止動畫。您可以嘗試使用Begin開始StoryboardStop停止它(不使用BeginAnimation):

Storyboard st = new Storyboard(); 
Storyboard.SetTarget(aniX, yourObject); 
Storyboard.SetTargetProperty(aniX, yourPropertyPath); 
st.Children.Add(aniX); 
Storyboard.SetTarget(aniY, yourObject); 
Storyboard.SetTargetProperty(aniY, yourPropertyPath); 
st.Children.Add(aniY); 
//begin 
st.Begin(); 
//stop 
st.Stop(); 

注意:上面的代碼假設你在程序代碼聲明所有DoubleAnimationsStoryboard(不XAML代碼)。我認爲你應該在XAML代碼中聲明它們以使其更加簡潔,許多類和WPF中的內容都針對XAML進行了優化,所以有時你會覺得在程序代碼中看起來有點奇怪。