如何将EventHandler添加到DoubleAnimation结束?

时间:2012-02-11 15:04:13

标签: c# animation event-handling

我正在DoubleAnimation没有使用StoryBoard而我正在尝试将事件处理程序应用到它完成时(否则代码I'我试图做的事情就是在动画结束之前发生的事情)

我用过:

da = new DoubleAnimation(40,20,  new Duration(TimeSpan.FromSeconds(2)));

((PerspectiveCamera)_Main3D.Camera).
    BeginAnimation(PerspectiveCamera.FieldOfViewProperty, da);

da.Completed += new EventHandler(Story_Completed);

然而这个事件永远不会发生。

1 个答案:

答案 0 :(得分:4)

在启动动画后,您附加了一个事件处理程序。如果动画是简短的,那么它可能会在分配完成的处理程序之前完成。运行动画时,动画对象也可能不响应处理程序分配。

试试这个:

da = new DoubleAnimation(40,20,  new Duration(TimeSpan.FromSeconds(2)));

da.Completed += new EventHandler(Story_Completed);

((PerspectiveCamera)_Main3D.Camera).
    BeginAnimation(PerspectiveCamera.FieldOfViewProperty, da);

...在开始动画之前添加Competed处理程序......