0

我正在从后面的代码中为我的 Windows 8 应用程序中的某些内容设置动画。我有一组动画对象,每个对象都包含一个DoubleAnimation. 我调用了一个方法,它遍历这个集合,Storyboard为每个对象创建新对象并开始它们。无论我BeginTime是在情节提要上设置, DoubleAnimation还是两者都设置,它们都同时启动和运行。

如何将动画延迟设定的毫秒数?

  foreach (AnimationObject a in queue)
  {
      Storyboard sb = new Storyboard();
      sb.Duration = a.DoubleAnimation.Duration;
      sb.BeginTime = a.DoubleAnimation.BeginTime;
      sb.Children.Add(a.DoubleAnimation);
      Storyboard.SetTarget(a.DoubleAnimation, a.Target);
      Storyboard.SetTargetProperty(a.animation, a.TargetProperty);
      sb.Begin();
  }

我写了一个队列来代替它使用await Task.Delay(a.BeginTime)并且这有效,所以我知道我正确设置了 BeginTime。然而,任务延迟方法似乎不是很有效

4

1 回答 1

0

我的问题是,后来Storyboard针对相同的目标Target覆盖了以前的目标。我重新设计了我的队列以使用DoubleAnimationUsingKeyFramesìnstead,并将关键帧添加到存在的现有Storyboard位置。现在一切正常!

于 2012-11-19T13:09:41.773 回答