如何在WPF中运行动画时暂停动画?

3
例如,当运行翻译变换动画时,我想暂停动画,但不想停止它,该如何处理?

1
你是指你想要“暂停”还是“暂时停止”动画? - JW Lim
是的,这就是我想表达的意思。 - Qi Tong
1个回答

1
为了让动画暂停正常工作,您需要从代码中调用Begin()方法,例如Loaded事件处理程序(例如:Window_Loaded),因为——引用MSDN的话:

当您开始一个被暂停的Storyboard时,它似乎会恢复和重新启动。然而,实际上并不是这样。Begin方法实际上会用未暂停的版本替换自己。每次调用Begin方法时,都会为Storyboard创建时钟对象。这些时钟分配给它们要动画的属性。因此,当再次调用Begin方法时,它不会重新启动时钟;它会用新的时钟替换它们。

示例:

<Window.Resources>
    <Storyboard x:Key="SomeStoryboard">
        ...
    </Storyboard>
</Window.Resources>

在“Loaded”事件或其他事件中:
MyStoryboard = (Storyboard)this.FindResource("SomeStoryboard");
MyStoryboard.Begin();

在代码中,“暂停”按钮的部分为:Pause
private void ButtonPause_Click(object sender, RoutedEventArgs e)
{
    MyStoryboard.Pause();
}

更多信息请参见:

MSDN: Storyboard.Pause 方法


1
谢谢,它确实帮了我很多! - Qi Tong

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