我正在尝试在程序代码中做平滑的动画。为此(至少在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中使用Storyboard做这件事的正确方法是什么呢?
非常感谢。
发布于 2010-05-13 14:45:21
我认为在Silverlight中使用Storyboard只是为了弥补早期版本中没有DispatcherTimer的缺陷。
在任何情况下,都需要在故事板完成后重新启动它。它不会自动重新启动。
https://stackoverflow.com/questions/2824852
复制相似问题