Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF Xaml旋转动画保持最终状态_C#_Wpf_Xaml_Animation - Fatal编程技术网

C# WPF Xaml旋转动画保持最终状态

C# WPF Xaml旋转动画保持最终状态,c#,wpf,xaml,animation,C#,Wpf,Xaml,Animation,我在窗口中有一个矩形和一个按钮,每次单击按钮时,我都想用动画将矩形旋转60度,我的问题是,每次单击按钮时,它都会恢复为0的角度。如何保持动画的结束状态,以便第一次单击时从0到60度,第二次单击时从60到120度,等等 这是我到目前为止所拥有的。。。 Xaml: 您应该重用在XAML中定义的RotateTransform,如 <Rectangle RenderTransformOrigin="0.5,0.5" ...> <Rectangle.RenderTransform

我在窗口中有一个矩形和一个按钮,每次单击按钮时,我都想用动画将矩形旋转60度,我的问题是,每次单击按钮时,它都会恢复为0的角度。如何保持动画的结束状态,以便第一次单击时从0到60度,第二次单击时从60到120度,等等

这是我到目前为止所拥有的。。。 Xaml:


您应该重用在XAML中定义的RotateTransform,如

<Rectangle RenderTransformOrigin="0.5,0.5" ...>
    <Rectangle.RenderTransform>
        <RotateTransform x:Name="transform"/>
    </Rectangle.RenderTransform>
</Rectangle>
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        DoubleAnimation d2 = new DoubleAnimation(60, new Duration(TimeSpan.FromSeconds(0.3)), FillBehavior.HoldEnd);
        RotateTransform rt = new RotateTransform();
        rect.RenderTransform = rt;
        d2.Completed += (s, eArgs) => rect.RenderTransform = new RotateTransform(60);
        rt.BeginAnimation(RotateTransform.AngleProperty, d2);  
    }
<Rectangle RenderTransformOrigin="0.5,0.5" ...>
    <Rectangle.RenderTransform>
        <RotateTransform x:Name="transform"/>
    </Rectangle.RenderTransform>
</Rectangle>
transform.BeginAnimation(RotateTransform.AngleProperty,
    new DoubleAnimation
    {
        By = 60d,
        Duration = TimeSpan.FromSeconds(0.3)
    });