如何在silverlight中使用Completed事件处理程序

时间:2010-09-09 17:47:50

标签: silverlight xaml

Onmouseover将我的图像向下移动50px(storyboard1) Onmouseout将我的图像移回50px(storyboard2)

我的问题是,如果你快速鼠标悬停然后再次退出它会使动画口吃,因为storyboard1没有完成它的动画,它会在我鼠标移动时停止。在允许storyboard2开始之前,如何使用已完成的事件处理程序或其他方法强制storyboard1完全完成?

我尝试连接已完成的事件处理程序,该处理程序在我的C#代码中创建一个方法。在那段代码中,我尝试将一个全局bool设置为true,如果故事板完成,然后在我的mouseout事件中我说如果我的bool不是真的那么不要成为storyboard2,它不起作用。

1 个答案:

答案 0 :(得分:1)

注意:

第一个动画不是实际停止,只是最后运行的故事板会覆盖值更改。故事板一直运行,直到显式停止,保留最后的值。

解决方案:

为避免口吃,您需要确保您的onmouseout故事板没有初始值。只有最终价值。然后它将从任何地方插回到起始点,而不是跳到最后一点,然后回动动画。

如果您无法自行修复,请发布您的Xaml,我会发布修复程序。

下一个问题:

这个新场景的问题在于动画的时间是固定的,因此动画后退将显得更慢(例如,从完全后退到中途需要相同的时间)。< / p>

该问题的解决方案是另一个问题(答案涉及动态更改播放速度)。