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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    C# webservice服务跟踪调试方法(转)
    ServiceBase.OnStart 方法
    基本类型和引用类型
    js基本概念
    在HTML中使用JavaScript
    js中的this
    SQL 取两日期的记录
    常用数据结构[转]
    How to: Pass Values Between ASP.NET Web Pages
    example for store procedure with both transcration and error handling
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1775373.html
Copyright © 2011-2022 走看看