我正在尝试在程序代码中做平滑的动画。为此(至少在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中执行此操作的正确方法是什么?
非常感谢。
答案 0 :(得分:0)
我认为在Silverlight中使用Storyboard只是为了弥补早期版本中没有DispatcherTimer。
在任何情况下,您需要在完成后重新启动Storyboard。它不会自动重启。