学习WPF——了解路由事件_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 学习WPF——了解路由事件

学习WPF——了解路由事件

 2015/1/14 12:55:45  liulun  程序员俱乐部  我要评论(0)
  • 摘要:入门我们先来看一个例子前台代码:后台代码:点击按钮的运行效果第一个弹出窗口第二个弹出窗口:第三个弹出窗口:说明当点击按钮之后,先触发按钮的click事件,再上查找,发现stackpanel也注册了该事件,那么接着触发StackPanel的Button.Click事件,依次再触发Grid的Button.Click事件,这就是最基本的事件路由,事件路由的策略是右内向外的如果不希望在XAML中注册路由事件,那么也可以通过编码的方式注册路由事件如下所示如果想终止事件的向上传递
  • 标签:
入门 我们先来看一个例子 前台代码: 后台代码: 点击按钮的运行效果
第一个弹出窗
第二个弹出窗口 第三个弹出窗口: 说明 当点击按钮之后,先触发按钮的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  
上一篇: 博客园客户端UAP开发随笔-从9个细节说ListView的使用 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名