Как я могу остановить / приостановить раскадровку, начатую в WPF? - PullRequest
0 голосов
/ 27 мая 2019

Я перемещаю изображение поезда вдоль железной дороги. В моей раскадровке я начну много анимации. Я хочу остановить или приостановить раскадровку в любое время.

Я пытался многими способами остановить / приостановить анимацию. Я начинаю раскадровку, как показано ниже.

myStoryboard.Begin(this, true);

Мой полный код ниже.

Storyboard sb;
    public mimic_screen()
    {
        InitializeComponent();
        sb = new Storyboard();

    }

    public bool move(Image target, double oldX, double oldY, double newX, double newY, int time)
    {
        try
        {

            DoubleAnimation anim1 = new DoubleAnimation(oldY, newY, TimeSpan.FromSeconds(time));

            Storyboard.SetTargetProperty(anim1, new PropertyPath("(Canvas.Top)"));

            Storyboard.SetTarget(anim1, target);

            sb.Children.Add(anim1);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Move Function Error:"+ex.Message);
            return false;
        }
        return true;
    }

    public void begin()
    {
        sb.Begin(this,true);
    }
    public void pause()
    {
        sb.Pause(this);
    }
    public void resume()
    {
        sb.Resume(this);
    }

    public void stop()
    {
        sb.Stop(this);
    }

Функция начала работает четко. Но когда я вызываю другие функции (остановка / пауза / возобновление), ничего не происходит. Когда я отлаживаю, методы запускаются успешно. Где моя ошибка?

...