WPF多步关键帧动画
Keyframe animation with WPF in multiple steps
我想在 WPF 动画中设置圆圈大小的动画:
Ellipse circle = new Ellipse();
Double finalSize = 5.0;
Double initialSize = 10.0;
DoubleAnimationUsingKeyFrames animSize = new DoubleAnimationUsingKeyFrames();
animSize.KeyFrames.Add(new DiscreteDoubleKeyFrame(initialSize, KeyTime.FromPercent(0.0)));
animSize.KeyFrames.Add(new DiscreteDoubleKeyFrame(finalSize, KeyTime.FromPercent(1.0)));
animSize.SpeedRatio = 1;
circle.BeginAnimation(Canvas.WidthProperty, animSize);
circle.BeginAnimation(Canvas.HeightProperty, animSize);
但我得到的只是第一帧和最后一帧。首先,圆的初始大小为 10,稍后它切换为 5。没有过渡,中间没有大小。
我可以将 SpeedRatio 更改为 10,例如- 但这只会改变第一帧切换到最后一帧的速度。
通过多个过渡步骤获得从 10 到 5 大小的平滑动画的秘诀是什么?
使用LinearDoubleKeyFrame
代替DiscreteDoubleKeyFrame
我想在 WPF 动画中设置圆圈大小的动画:
Ellipse circle = new Ellipse();
Double finalSize = 5.0;
Double initialSize = 10.0;
DoubleAnimationUsingKeyFrames animSize = new DoubleAnimationUsingKeyFrames();
animSize.KeyFrames.Add(new DiscreteDoubleKeyFrame(initialSize, KeyTime.FromPercent(0.0)));
animSize.KeyFrames.Add(new DiscreteDoubleKeyFrame(finalSize, KeyTime.FromPercent(1.0)));
animSize.SpeedRatio = 1;
circle.BeginAnimation(Canvas.WidthProperty, animSize);
circle.BeginAnimation(Canvas.HeightProperty, animSize);
但我得到的只是第一帧和最后一帧。首先,圆的初始大小为 10,稍后它切换为 5。没有过渡,中间没有大小。
我可以将 SpeedRatio 更改为 10,例如- 但这只会改变第一帧切换到最后一帧的速度。
通过多个过渡步骤获得从 10 到 5 大小的平滑动画的秘诀是什么?
使用LinearDoubleKeyFrame
代替DiscreteDoubleKeyFrame