• 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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    git-guide
    jenkinsfile 庖丁解牛
    pipline预发的'拉取代码'的stage
    jenkinsfile的credentialsId
    jenkins配置ssh插件
    Rancher
    福至心灵篇-python
    生成器和迭代器思维导图(待补充)
    怎么样才能使内心平静?
    Java中的语法糖
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1775373.html
Copyright © 2020-2023  润新知