我想在未設置Duration的情況下創建動畫,而是根據絕對速度設置進行計算。例如。我希望動畫以100像素/秒的速度發生,並且持續時間根據「來源」和「來源」值自動計算。如果路徑爲350像素,則動畫將花費3.5秒完成。恆定速度的silverlight動畫
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))'而做一個很好的例子嗎?請添加更多關於您對此方法的異議的詳細信息。 – AnthonyWJones 2011-05-15 20:14:25
沒有人反對。正如我上面所說,這感覺很笨拙。 – 2011-05-15 20:53:43