コードビハインドでストーリーボードを作成し、それを相互にチェーンして複数回実行することに失敗しました。どういうわけか、ストーリーボードはコンテキストを維持しているようで、リセットされません。
いくつかの要素をアニメーション化しており、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();
}
御時間ありがとうございます!