zoukankan      html  css  js  c++  java
  • sliverlight:CompositionTarget.Rendering 的问题

    sliverlight中一个用户自定义控件(比如MyControl.xaml)如果注册了CompositionTarget.Rendering事件(相当于Flash中的Enter_Frame,在进入每帧时触发),然后在MainPage.cs用代码动态添加时,有二个细节要注意:

    1、MyControl实例在new出来以后,如果还未添加到MainPage.xaml中的根容器中,其对应的CompositionTarget.Rendering事件不被触发(这跟Flash中不同,Flash中只要new出来,不管有没有加入显示列表,Enter_Frame马上就跑起来了)

    2、移除CompositionTarget.Rendering事件的问题,c#中没有提供类似as3中的removeEventListener功能,所以要想在MainPage.xaml.cs中移除MyControl实例的CompositionTarget.Rendering事件,只能手动在MyControl.xaml.cs中定义一个类似Stop()的公用方法,以CompositionTarget.Rendering -= ... 的形式解除事件响应,然后MainPage.xaml.cs中用类似_mycontrol.Stop()的方式来调用。(注:sliverlight中,就算开发者把MyControl实例设置为不可见,或者从根窗口中removeChild掉,其CompositionTarget.Rendering仍然是以背后一直跑的(Flash同样如此),这样会影响性能,所以在不需要的时候,建议干掉CompositionTarget.Rendering事件响应)

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    建造者模式5(7)
    抽象工厂模式4(6)
    工厂方法模式3(5)
    jxl导出excel(2)
    jxl导入excel(1)
    java8新特性字符串转LocalDateTime转Date(6)
    极光推送java服务端-通知(2)
    极光推送java服务端-通知(1)
    SpringCloud微服务之Ribbon负载均衡(一)
    cenos7搭建gitlab
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1775373.html
Copyright © 2011-2022 走看看