首页 > 代码库 > [WPF] 动画Completed事件里获取执行该动画的UI对象
[WPF] 动画Completed事件里获取执行该动画的UI对象
原文:[WPF] 动画Completed事件里获取执行该动画的UI对象
昨天群里有位童鞋提出如何在动画完成事件Completed里获取到执行该动画的UI对象。
WPF里动画的Completed的本身并不会返回执行动画的UI对象,但我们可以利用附加属性Storyboard.TargetProperty来达到我们想要的效果。
步骤:
1 在执行动画前,先附加属性记录对象
DoubleAnimation ani = new DoubleAnimation(); ani.From = start; ani.To = end; ani.Duration = new Duration(TimeSpan.FromSeconds(0.25)); ani.Completed += ani_Completed; /* !!! 附加属性Storyboard.Target,用于指定执行动画的UI对象 !!! */ Storyboard.SetTarget(ani, uiElement); /* 启动动画 */ uiElement.BeginAnimation(Canvas.LeftProperty, ani);
2 在动画的Completed事件方法里取回
if (sender is AnimationClock) { AnimationTimeline timeline = (sender as AnimationClock).Timeline; /* !!! 通过附加属性把UI对象取回 !!! */ object uiElement = Storyboard.GetTarget(timeline); }
附带一个 Demo 以供参考 :)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。