如何让WPF控件动画在从可视树中移除之前完成

3
我有一个情景,希望在WPF控件从可视/逻辑树中移除前对其进行动画处理。这个控件是自定义的,包括动画在内的控件样式将由设计者提供(即编写控件代码时我不知道它们的细节)。我想提供路由事件,让设计者能够在对象被移除之前触发动画(例如,用户用鼠标拖动控件,并释放鼠标按钮后,控件可能会缓慢地消失,而不是突然从可视/逻辑树中移除)。仅使用路由事件是否可行?是否可以检测到动画何时完成,而无需要求设计者设置奇怪的依赖属性或在动画结束时触发控件的移除?使用依赖属性会创建内存泄漏,如果设计者未设置该属性。是否有更好的方法?
1个回答

2

每个故事板都有一个“完成”事件,当动画完成时会调用该事件。您应该处理该事件并从该事件中删除控件。这样,您只需在释放鼠标按钮时启动动画即可。


1
如果我不知道Storyboard的名称,我该如何处理Completed事件?(我假设控件是由设计师模板化的,并且可能包含或不包含任何动画)。处理完成事件是唯一的方法吗? - Kev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接