如何停止动画WPF?

如何停止动画,以便它不会产生Completed事件。 这是一个简单的例子

      

支持代码:

 private void Border_MouseEnter(object sender, MouseEventArgs e) { var a = new DoubleAnimation { To = 0, Duration = TimeSpan.FromMilliseconds(4000) }; a.Completed += (obj, args) => MessageBox.Show("Boom!"); border.BeginAnimation(Border.OpacityProperty, a); } private void Border_MouseLeave(object sender, MouseEventArgs e) { border.BeginAnimation(Border.OpacityProperty, null); border.Opacity = 1; } 

如果我在矩形变为白色之前移动鼠标,它会在一段时间后显示弹出窗口。 怎么预防这个? 让我们假设Border_MouseLeaveBorder_MouseEnter方法彼此不了解(它们不能相互传递动画实例变量)。

你可以用这个:

               

并且:

 private void com(object sender, EventArgs e) { MessageBox.Show("boom!"); } 

您可以使用Property或Data Trigger的EnterActions和ExitActions属性,或者@Ali表示正确使用Begin and Stop故事板。