WPF可以显式调用动画反向吗?

Kon*_*che 8 .net c# wpf

WPF中的动画提供布尔参数AutoReverse.是否可以调用由...实现的功能AutoReverse = "true"

我的目标是省去一些麻烦的反向动画,特别是备用很多代码.动画结束后,反向不能直接发生.


使用AutoReverse和True仅为反向动画设置动画的示例,但这不能按要求工作 - 它仍然可以动画实际动画和反向动画.

        TranslateTransform transform = new TranslateTransform(0.0, 0.0);
        myBox.RenderTransform = transform;

        sb = new Storyboard();
        Duration dur = new Duration(TimeSpan.FromSeconds(0.5));
        DoubleAnimation shiftAnimation = new DoubleAnimation(100.0, dur);
        shiftAnimation.AutoReverse = true;
        sb.Children.Add(shiftAnimation);
        Storyboard.SetTarget(shiftAnimation, myBox);
        Storyboard.SetTargetProperty(shiftAnimation, new PropertyPath("RenderTransform.X"));

        sb.Seek(TimeSpan.FromSeconds(0.5));
        sb.Begin();
Run Code Online (Sandbox Code Playgroud)

Leg*_*egy 6

您可以将时钟设置为动画显示的100%,这样当动画开始时,它将跳过非反转部分!

编辑:如果持续时间设置为0:0:1.5,则将新时间轴应用于动画集0:0:1.5.必须将自动反转设置为打开,然后您必须启动动画.

编辑2:

TranslateTransform transform = new TranslateTransform(0.0, 0.0);
myBox.RenderTransform = transform;

sb = new Storyboard();
Duration dur = new Duration(TimeSpan.FromSeconds(0.5));
DoubleAnimation shiftAnimation = new DoubleAnimation(100.0, dur);
shiftAnimation.AutoReverse = true;
sb.Children.Add(shiftAnimation);
Storyboard.SetTarget(shiftAnimation, myBox);
Storyboard.SetTargetProperty(shiftAnimation, new PropertyPath("RenderTransform.X"));

sb.Begin();
sb.Pause();
sb.Seek(sb.Duration.TimeSpan);
sb.Resume();
Run Code Online (Sandbox Code Playgroud)