我正在通过代码隐藏在我的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。然而,任务延迟方法看起来效率不高
答案 0 :(得分:0)
我的问题是,后来针对相同Storyboard
{{}}}的Target
覆盖了之前的DoubleAnimationUsingKeyFrames
。我重新设计了我的队列以使用Storyboard
,然后将关键帧添加到现有的{{1}}。一切都完美了!