0
我在代碼背後製作故事板並將其多次鏈接到對方時不成功。不知何故,故事板似乎保持在上下文中,並且不會重置。試圖用不同的方式發射WPF StoryBoard完成動作
我正在動畫幾個元素,X次遞歸地運行動畫方法,但在Completed事件中使用了不同的回調操作。第一個動畫運行正常,但其餘的動畫根本沒有動畫(已完成的事件觸發)。
如果我在一個方法中創建了一個StoryBoard並運行它,它是否應該在它完成後才被處置?我正在努力做storyboard.Remove()
。
private void SlideLeft(int numberOfStepsToSlide)
{
if (numberOfStepsToSlide < 1) return;
Slide(() => SlideLeft(numberOfStepsToSlide - 1));
}
protected void Slide(Action callBackAfterAnimation = null)
{
var sb = new Storyboard();
sb.FillBehavior = FillBehavior.Stop; //i thought maybe this would fix it, but no
//..
//.. a number of double animations created and added to storyboard
//..
sb.Completed += (sender, e) =>
{
sb.Stop();
sb.Remove();
//..
//..sending message to ViewModel and manipulating values
//..
if (callBackAfterAnimation != null)
callBackAfterAnimation();
};
sb.Begin();
}
謝謝你的時間!
只是稍微改述一下你想要做的事情:你想在動畫中確定N次運行一個Storyboard,並且每次都執行一個不同的Completed處理程序? – JerKimball 2013-03-26 16:46:20
@JerKimball對不起,不清楚!不完全是:我想運行單個故事板N次,其中N是在動畫之前確定的。編輯:我打電話SlideLeft(3),它應該運行故事板三次。 – cederlof 2013-03-27 08:05:07