播放动画(故事板)倒放

3
有没有简单的方法可以反向播放一些StoryBoad动画?由于存在Storyboard.Begin()方法,我期望有一种像“Storyboard.BeginReversed()”这样的方法,但我找不到它。
如果没有办法使动画在反向播放,那么我就必须为大多数动画编写补充动画。对我来说,这听起来很糟糕(某种形式的代码重复)。
基本上,我只是对一个显示然后隐藏的网格进行动画处理。
2个回答

1

你能把 "From" 和 "To" 翻转过来再播放一遍吗?


谢谢你的回答。好的,就是这样……但是不是很清楚。问题在于你必须在某个地方保留一个已经翻转的信息。我宁愿有更清晰的东西。真的没有什么方法可以解决这个问题吗?Storyboard 的创建者们没有考虑过这个问题吗? - Rasto
@drasto- 我认为如果您想要逆向播放动画,设计师会将其视为不同的动画。简化创建此类动画取决于您。当然,您可以始终编写扩展方法来扩展您正在使用的故事板,以使其更清晰。 - treehouse
谢谢。我会尝试编写扩展方法,但这并不容易。我必须注意在前向动画仍在运行时调用后向动画等类似问题。 - Rasto
没有比这更好的答案,我认为没有比交换“From”和“To”的方法更好,所以我接受了这个答案。 - Rasto

-1

我认为这会对你有所帮助(另请参见下面的 XAML 示例)

var storyboard = this.Resources["Storyboard1"] as Storyboard;

        var anim = storyboard.Children[0] as DoubleAnimationUsingKeyFrames;

        anim.AutoReverse = true;

        anim.RepeatBehavior = RepeatBehavior.Forever;

<Storyboard x:Key="Storyboard1">
        <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="border" Storyboard.TargetProperty="(FrameworkElement.Width)">
            <SplineDoubleKeyFrame KeyTime="00:00:00" Value="200"/>
            <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="300"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

抱歉,我不想自动重复它,我想倒放播放,或许是在原始播放完成后。 - Rasto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接