アニメーション速度の変更
WPFでアニメーション速度を変更するときは、AnimationClock.Controller.SpeedRatioを使います。
AnimationClockを使うには、次のようにコードでAnimationClockとAnimationとターゲットプロパティを関連付ける必要があります。
AnimationClock myClock;
DoubleAnimation
myAnimation =
new DoubleAnimation(0.0, 360.0, new Duration(new TimeSpan(0, 0, 5)));
myAnimation.RepeatBehavior = RepeatBehavior.Forever;
myClock = myAnimation.CreateClock();
myEllipse.ApplyAnimationClock(Ellipse.WidthProperty, myClock);
すると例えばスライダを使って速度を変更するようなコールバックは次のようになります
private void SpeedChanged(object sender, RoutedEventArgs e)
{
Slider s = (Slider)sender;
double w = s.Value;
myClock.Controller.SpeedRatio = w;
}
マイクロソフト㈱エバンジェリスト。北海道大学理学部物理学科卒。リアルタイム3Dグラフィックスを専門とし、グラフィックスやシェーダに関する技術文章を執筆・講演。 DirectX SDK日本語ドキュメントの開発に携わるとともに、Windows Presentation Foundation プログラミング(オーム社)、Game Programming Gemsシリーズ、リアルタイム レンダリング第2版(ボーンデジタル)、Texturing & Modeling, A Procedural Approach などを翻訳・監修、XAMLプログラミング(ソフトバンク クリエイティブ)を執筆。趣味は薪割り。