WPF:如何在动画运行时在特定时间点调用方法

WPF:如何在动画运行时在特定时间点调用方法,wpf,animation,Wpf,Animation,我的问题如下: 我有一个动画,使面板滑动,直到它消失(我动画其边距属性)。动画结束后,我希望面板返回到开始时的位置。所以我将autoreverse属性设置为true,动画持续时间自动翻倍,并且所有内容都可以正常运行。问题是我的程序中仍然缺少一些基本的东西:当动画中途运行时,即面板消失时,我必须进行一些处理,调用一个方法,从而使面板内容更改其UI。 那么,有没有办法做到这一点 谢谢,正如@deafjeff所建议的,您可以制作2个动画,而不是使用自动翻转。为第一个动画的Completed事件注册处理

我的问题如下:

我有一个动画,使面板滑动,直到它消失(我动画其边距属性)。动画结束后,我希望面板返回到开始时的位置。所以我将autoreverse属性设置为true,动画持续时间自动翻倍,并且所有内容都可以正常运行。问题是我的程序中仍然缺少一些基本的东西:当动画中途运行时,即面板消失时,我必须进行一些处理,调用一个方法,从而使面板内容更改其UI。 那么,有没有办法做到这一点


谢谢,

正如@deafjeff所建议的,您可以制作2个动画,而不是使用自动翻转。为第一个动画的
Completed
事件注册处理程序。进行UI更改并在hanlder代码中启动第二个动画。代码如下所示:

private void onFirstAnimationCompleted(object sender, EventArgs e)
{
  DoUIChange();
  SecondAnimation.Start();
} 

您可以尝试使用从动画开始的计时器……您可以简化事情:不要使用自动反转。将动画分为两部分:1)滑入,然后更改UI;2)滑出我现在就是这么做的,我希望有更流线型的东西。你是如何创建动画的?通过故事板?是的,因为我确实必须同时移动两个面板,但正如我所说的,这就是我要做的,我问了这个问题,因为我想保留一个动画。您仍然可以将两个动画包装在
故事板中,并为动画幻灯片注册
已完成的事件处理程序。如果您坚持使用“自动转换”方法,您可以使用
dispatchermer
随时安排更新ui代码,但我认为这不是一个好的解决方案。