WPF アニメーションのスムージングに苦労しています
実際に私のアニメーション コードは次のとおりです。
private void AnimateX ( FrameworkElement element, double XMoveStart, double XMoveEnd, int secondX)
{
SineEase eEase = new SineEase();
eEase.EasingMode = EasingMode.EaseInOut;
Storyboard sb = new Storyboard();
DoubleAnimation daX = new DoubleAnimation(XMoveStart, XMoveEnd, new Duration(new TimeSpan(0, 0, 0, secondX, 0)));
daX.EasingFunction = eEase;
Storyboard.SetTargetProperty(daX, new PropertyPath("(Canvas.Left)"));
sb.Children.Add(daX);
element.BeginStoryboard(sb);
}
上記のコードは、オブジェクトを簡単に水平方向に移動する方法です。1つのオブジェクトだけが動いている場合はOKです。ただし、2 つ以上のオブジェクトが一緒に移動する (前のアニメーションがまだ完了していないときに別のオブジェクトで AnimateX メソッドを呼び出す) と、アニメーションがぎくしゃくし始めます。ぎくしゃくしたとは、アニメーションの過程でオブジェクトが揺れていることを意味します。