Раскадровка как таймер в WPF - PullRequest
0 голосов
/ 13 мая 2010

Я пытаюсь сделать плавную анимацию в процедурном коде. Для этого (по крайней мере, в Silverlight) рекомендуется использовать таймер раскадровки, а не DispatcherTimer. Поэтому я использую что-то вроде этого:

    Storyboard _LoopTimer = new Storyboard();
    public void StartAnimation()
    {
        _LoopTimer.Duration = TimeSpan.FromMilliseconds(0);
        _LoopTimer.Completed += new EventHandler(MainLoop);
        _LoopTimer.Begin();
    }
    void MainLoop(object sender, EventArgs e)
    {
        // Do animation stuff here

        // Continue storyboard timer
        _LoopTimer.Begin();
    }

А в Silverlight это работает нормально. Но в WPF я только ударил MainLoop () один раз. Установка RepeatBehaviour на Forever тоже не помогает. Итак, как правильно сделать это в WPF с раскадровкой?

Большое спасибо.

1 Ответ

0 голосов
/ 13 мая 2010

Я подумал, что использование раскадровки в Silverlight было просто взломом, чтобы восполнить отсутствие DispatcherTimer в ранних версиях.

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

...