故事板作为WPF中的计时器

时间:2010-05-13 06:37:42

标签: wpf animation storyboard smooth

我正在尝试在程序代码中做平滑的动画。为此(至少在Silverlight中),建议使用Storyboard计时器而不是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也没有帮助。 那么在使用Storyboard的WPF中执行此操作的正确方法是什么?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我认为在Silverlight中使用Storyboard只是为了弥补早期版本中没有DispatcherTimer。

在任何情况下,您需要在完成后重新启动Storyboard。它不会自动重启。