Как отменить анимацию. Допустим элемент был удален, а анимация продолжается не известно где. Видел там миллиард классов Storyboard(при том даже больше миллиарда), ни разу не понимаю. Почему просто нету, метода Stop, IsRun и тому подобные?
К примеру, если
Ellipse circle = new Ellipse();
circleAnim.Completed += (ss,ee)=>
{
if( Fantastic()){ // какая-то я функция, по типу IsCancel.
//ну это еще можно сделать, IsVisible
/// сюда я должен попасть если только анимация завершилась по времени,
и элемент существует в дереве.
}
};
var circleAnim = new DoubleAnimationUsingKeyFrames();
circleAnim.Duration = TimeSpan.FromMilliseconds( 1000.0);
circleAnim.KeyFrames.Add(new LinearDoubleKeyFrame(1, KeyTime.FromPercent(0)));
circleAnim.KeyFrames.Add(new LinearDoubleKeyFrame(2, KeyTime.FromPercent(0.5)));
circleAnim.KeyFrames.Add(new LinearDoubleKeyFrame(1, KeyTime.FromPercent(1)));
ScaleTransform scaleTransform = new ScaleTransform();
circle.RenderTransform = scaleTransform;
scaleTransform.BeginAnimation(ScaleTransform.ScaleXProperty, circleAnim);
scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, circleAnim);
Canvas.SetLeft(circle, posX);
Canvas.SetTop(circle, posY);
canvas.Children.Add(circle);
В любом случае, не нравится. что анимация удаленных объектов все еще происходит.