2012-02-11 66 views
2

我做了DoubleAnimation不使用StoryBoard和我试图将事件处理程序时,它的完成到(否则代码我试图做的是发生动画结束前)如何将EventHandler添加到DoubleAnimation结束?

我用:

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

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

da.Completed += new EventHandler(Story_Completed); 

但是这个事件永远不会发生。

回答

4

您正在附加事件处理程序您开始动画。如果动画很短,那么可能在完成处理程序分配之前完成动画。在运行动画时,动画对象也可能不响应处理程序分配。

试试这个:

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

da.Completed += new EventHandler(Story_Completed); 

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

...开始动画之前加入竞争处理器...

+0

谢谢你,那是问题,它的工作原理。健康长寿·繁荣昌盛! – 2012-02-11 15:11:20