首页 > 代码库 > 学习WPF——了解路由事件
学习WPF——了解路由事件
入门
我们先来看一个例子
前台代码: |
后台代码: |
点击按钮的运行效果 第一个弹出窗口 |
第二个弹出窗口: |
第三个弹出窗口: |
说明
当点击按钮之后,先触发按钮的click事件,再上查找,发现stackpanel也注册了该事件,那么接着触发StackPanel的Button.Click事件,依次再触发Grid的Button.Click事件,这就是最基本的事件路由,事件路由的策略是右内向外的 |
如果不希望在XAML中注册路由事件,那么也可以通过编码的方式注册路由事件如下所示 |
如果想终止事件的向上传递,可以使用这种办法 |
上面的例子是一个冒泡路由事件,是由内向外传递的事件 WPF中还有一种事件是隧道路由事件,是由外向内传递的事件 |
路由事件解析
在上面的例子中我们看到了Button类的路由事件Click
下面我们来剖析源码,看看Button是如何注册这个路由事件的
要使用路由事件,必须先定义路由事件 首先在Button类的基类ButtonBase中发现了路由事件的定义ClickEvent 代码中使用EventManager.RegisterRoutedEvent注册了路由事件 这个方法包含事件的名称、路由类型等内容 |
定义了ClickEvent事件之后还需要对事件进行封装 这里使用到了.Net的事件封装器, AddHandler和RemoveHandler用于添加和删除已注册的调用程序 |
修改记录
2015-1-5:完成一部分内容
2015-1-14:完成全部内容
参考资料
《Pro WPF 4.5 in C# 4th Edition》
http://www.cnblogs.com/DebugLZQ/archive/2012/12/03/2799314.html
学习WPF——了解路由事件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。