WPF - 旋转变换转换

时间:2015-10-03 15:47:41

标签: c# wpf xaml transformation transitions

我是WPF的新手,我有一个关于WPF转换的问题:

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

想象一下我有一个形状:

<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;

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

1 个答案:

答案 0 :(得分:3)

您可以使用DoubleAnimation将属性从一个值“转换”到另一个值。如果未设置动画的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);