WPF - 旋转变换过渡

WPF - Rotate Transform Transition

我是 WPF 的新手,我对 WPF 中的转换有疑问:

如何创建和使用它们?我的 google 搜索结果主要是关于 动画 而不是 过渡 。 我的目标是创建这样的东西:

假设我有一个形状:

<Rectangle Width="100" Height="200" Name="shape_01" x:Key="shape_01" Fill="Green"/>

whoms 轮换将在 运行 时间内设置为(尚)未知值。意思是,我不能使用 StoryboardAnimation 来创建过渡。 我使用以下代码设置旋转角度:

double angle = ....;

((shape_01.RenderTransform as TransformGroup)
    .Children.First(_ => _ is RotateTransform) as RotateTransform)
    .Angle = angle;

如何将之前的值转换为当前设置的值?

您可以使用 DoubleAnimation 到 "transition" 从一个值到另一个值的 属性。如果不设置动画的 From 属性,则过渡从当前 属性 值开始。

double angle = ....;

var animation = new DoubleAnimation
{
    To = angle,
    Duration = TimeSpan.FromSeconds(1)
};

var transform = ((TransformGroup)shape_01.RenderTransform)
    .Children.OfType<RotateTransform>().First();

transform.BeginAnimation(RotateTransform.AngleProperty, animation);