@SergeySerge11

Как отменить анимацию WPF?

Как отменить анимацию. Допустим элемент был удален, а анимация продолжается не известно где. Видел там миллиард классов 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);

В любом случае, не нравится. что анимация удаленных объектов все еще происходит.
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы