zoukankan      html  css  js  c++  java
  • 动画Completed事件里获取执行该动画的UI对象

    转:http://www.cnblogs.com/xyq/p/3775732.html

    昨天群里有位童鞋提出如何在动画完成事件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 以供参考 :)

  • 相关阅读:
    如何理解面向对象和面向过程
    IIS端口被占用
    SQL UNION操作符
    SQL(MSSQLSERVER)服务启动错误代码3414
    WCF学习之路(一)
    AJAX技术学习总结
    AJAX之XMLHttpRequest对象
    软考之汇编语言
    IP地址的分配
    数组偏移量
  • 原文地址:https://www.cnblogs.com/ExMan/p/3775787.html
Copyright © 2011-2022 走看看