【发布时间】:2011-05-15 19:12:47
【问题描述】:
我想创建未设置 Duration 的动画,而是根据绝对速度设置计算的。例如。我希望动画以 100 像素/秒的速度发生,并且持续时间是根据 To 和 From 值自动计算的。如果路径为 350 像素,则动画将需要 3.5 秒才能完成。
Duration.Automatic 不适合这个。 Animation.SpeedRatio 也是另一回事。
我当然可以根据路径长度计算持续时间,但我会在屏幕上移动许多对象,每个对象都以程序方式创建和删除,我个人觉得这样做很笨拙。
什么是好的解决方案? Silverlight 4 或更高版本中是否有任何内置行为?
虚构代码:
DoubleAnimation ani = new DoubleAnimation();
ani.From = 0;
ani.To = 200;
ani.AbsoluteSpeed = "300 pixels / sec";
storyBoard1.Begin(); // now my animation will take 0.66 sec
【问题讨论】:
-
基于您的“虚构代码”将是您的偏好,您没有很好地说明不简单地使用
ani.Duration = new Duration(TimeSpan.FromSeconds(200/300))吗?请添加有关您反对此方法的更多详细信息。 -
没有异议。正如我上面所说,感觉很笨拙。
标签: silverlight animation silverlight-4.0