zoukankan      html  css  js  c++  java
  • 路由事件的小结

    针对:<!--<Button x:Name="button1" Width="80" Height="80"    Button.Click="Button_Click"     Click="Button_Click"/>-->

    小结1:

    <!--Button.Click="Button_Click"是安装方式,当前控件安装了Button.Click事件侦听器,当该事件被激发时,会调用Button.Click事件的处理方法Button_Click-->

    小结2:

    (A):  xaml的<Grid x:Name="grid_1" Button.Click="Button_Click_1"/>  《===》 等价于   后台的 grid_1.AddHandler(Button.ClickEvent, new RoutedEventHandler(Button_Click_1)); //这种是“安装”方式(是路由事件的安装),推荐”经常“使用,这种方式可以给任何UIElement安装路由事件侦听器,甚至可以给宿主元素自己安装。说明:路由事件的安装只有(A)中这两种方法;而(B)中的两种方法属于CLR事件的注册(与直接事件的注册完全相同)。

    (B)  xaml的<Button  x:Name="button1"  Click="Button_Click"/>  《====》 等价于   后台的 button1.Click += Button_Click

    提示:在(B)中,这两种方法,实际上,在后台代码中调用的都是 CLR事件包装器的add访问器,如下所示:

        public event RoutedEventHandler Click
        {
            add{this.AddHandler(ClickEvent,value);}//封装了安装方式,相当于button1安装Button.Click路由事件,这与其他元素安装Button.Click路由事件没有区别        
            remove{.....}
        }

    //这种是“注册”方式(是CLR事件的注册,而非路由事件的安装),属于.net的老方法,它虽然内部封装了”安装方式“ ,但只能给宿主自己安装(这恰恰是相对于安装方式的缺点),比较陈旧(非WPF标准),建议”少用“。

  • 相关阅读:
    socket用法以及tomcat静态动态页面的加载
    SQL2000的三种“故障还原模型”
    杀毒软件拦截的,看不懂,留作纪念
    TOMCAT如何建立两个端口或服务
    非正常关机后造成数据库 置疑 状态的解决办法
    各数据表的空间使用量
    SQL Server 2008维护计划 出错 无法实现自动备份
    SQL2008安装自动退出
    oracle自动备份
    吐槽一下金山卫士
  • 原文地址:https://www.cnblogs.com/changbaishan/p/4217156.html
Copyright © 2011-2022 走看看