WPF - 旋转变换过渡
WPF - Rotate Transform Transition
我是 WPF 的新手,我对 WPF 中的转换有疑问:
如何创建和使用它们?我的 google 搜索结果主要是关于 动画 而不是 过渡 。
我的目标是创建这样的东西:
假设我有一个形状:
<Rectangle Width="100" Height="200" Name="shape_01" x:Key="shape_01" Fill="Green"/>
whoms 轮换将在 运行 时间内设置为(尚)未知值。意思是,我不能使用 Storyboard
或 Animation
来创建过渡。
我使用以下代码设置旋转角度:
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);
我是 WPF 的新手,我对 WPF 中的转换有疑问:
如何创建和使用它们?我的 google 搜索结果主要是关于 动画 而不是 过渡 。 我的目标是创建这样的东西:
假设我有一个形状:
<Rectangle Width="100" Height="200" Name="shape_01" x:Key="shape_01" Fill="Green"/>
whoms 轮换将在 运行 时间内设置为(尚)未知值。意思是,我不能使用 Storyboard
或 Animation
来创建过渡。
我使用以下代码设置旋转角度:
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);