码迷,mamicode.com
首页 > 其他好文 > 详细

[WPF] 动画Completed事件里获取执行该动画的UI对象

时间:2014-06-08 20:42:07      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

原文:[WPF] 动画Completed事件里获取执行该动画的UI对象

昨天群里有位童鞋提出如何在动画完成事件Completed里获取到执行该动画的UI对象。

WPF里动画的Completed的本身并不会返回执行动画的UI对象,但我们可以利用附加属性Storyboard.TargetProperty来达到我们想要的效果。

步骤:

1 在执行动画前,先附加属性记录对象

bubuko.com,布布扣
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);
bubuko.com,布布扣

 

2 在动画的Completed事件方法里取回

if (sender is AnimationClock)
{
  AnimationTimeline timeline = (sender as AnimationClock).Timeline;
   /* !!! 通过附加属性把UI对象取回 !!! */
   object uiElement = Storyboard.GetTarget(timeline);
}

 

附带一个 Demo 以供参考 :)

 

[WPF] 动画Completed事件里获取执行该动画的UI对象,布布扣,bubuko.com

[WPF] 动画Completed事件里获取执行该动画的UI对象

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/lonelyxmas/p/3776021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!