路由事件(RoutedEvent)是WPF中新增的事件,使用起来与传统的事件差别不大,

但传播方式是完全不同的。

路由事件的传播方式

通过RoutingStrategy来定义传播的方式

    public enum RoutingStrategy{Tunnel = 0, //隧道,由顶层元素向内传播,事件一般以Preview开头Bubble = 1, //冒泡,与隧道相反,向外传播Direct = 2, //直接,与传统的事件相似}

WPF中的路由事件用的最多的就是Tunnel和Bubble这两种传播方式,所以一般路由事件都是成对出现,

如:PreviewMouseLeftDown和MouseLeftDown

注意:Tunnel事件总是比Bubble事件先执行,如果在Tunnel事件中设置了Handled = true,那么成对的Bubble事件将不会发生,因为它们共享同一个RoutedEventArgs类的实例,在转播的过程中设置了Handled = true, 路由事件还是会继续传播,只是不会执行。

更多更详细的内容请参考:

WPF快速入门系列(3)——深入解析WPF事件机制

WPF中路由事件的传播相关推荐

  1. WPF中的事件及冒泡事件和隧道事件(预览事件)的区别

    WPF 的采取了路由事件机制,这样事件可以在可视树上层级传递.要知道 XAML 中控件都是由很多其他元素组合而成,比如我们单击了 Button 内部的 TextBlock 元素,Button 依然可以 ...

  2. WPF Demo18 路由事件

    using System.Windows;namespace 路由事件2 {public class Student{声明并定义路由事件//public static readonly RoutedE ...

  3. wpf中键盘事件中KeyPressEventArgs.Handled 的用法(解决键盘事件默认操作)

    KeyPressEventArgs.Handled 属性 (键盘的默认操作就是改变焦点,键盘方法需要为控件设置焦点) 获取或设置一个值,该值指示是否处理过 KeyPress 事件. 属性值类型:Sys ...

  4. 了解 WPF 中的路由事件和命令

    目录 路由事件概述 WPF 元素树 事件路由 路由事件和组合 附加事件 路由命令概述 操作中的路由命令 命令路由 定义命令 命令插入 路由命令的局限 避免命令出错 超越路由命令 路由处理程序示例 要想 ...

  5. WPF中的路由事件(转)

    出处:https://www.cnblogs.com/JerryWang1991/archive/2013/03/29/2981103.html 最近因为工作需要学习WPF方面的知识,因为以前只关注的 ...

  6. WPF中MsgBox的弹出会中断路由事件的传递

    在WPF的Tunnel(Preview)路由事件中用MessageBox.Show弹出对话框后,会中断后续的Bubbling事件.根据MSFT的解释是,MessageBox弹出时获取到了焦点,导致路由 ...

  7. WPF 学习笔记 路由事件

    1. 可传递的消息: WPF的UI是由布局组建和控件构成的树形结构,当这棵树上的某个节点激发出某个事件时,程序员可以选择以传统的直接事件模式让响应者来响应之,也可以让这个事件在UI组件树沿着一定的方向 ...

  8. WPF系列学习之三(路由事件)

    路由事件实际上以一上 列三种方式出现.     1.与普通的.net事件类似的直接路由事件.它们起源于一个元素,并且不传递给其他元素.例如:MouseEnter事件.     2.在包含层次中向上传递 ...

  9. WPF,Silverlight与XAML读书笔记第八 - WPF新概念之三路由事件

    说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 路由事件是专门设计用于在元素树中使用的事件. ...

最新文章

  1. 数据、人工智能和传感器按COVID-19新冠流感排列
  2. javascript设计模式与开发实践(二)- 封装和原型模式
  3. 学习《Flask Web开发:基于Python的Web应用开发实战》分享
  4. 进入保护模式(四)设置一些公用的方法
  5. Linux_ppc下软件包安装,Linux下软件包安装详解
  6. 自己动手架设linux下Web服务器(图)6
  7. 何恺明团队最新研究:3D目标检测新框架VoteNet,两大数据集刷新最高精度
  8. 2017.5.2AM
  9. IT巨头埃森哲遭 LockBit 勒索攻击,黑客威胁泄露数据
  10. Android 退出app,后台推送的服务也停止了,怎么可以做到不停止后台服务呢?
  11. Vb6 Modbus TCP通讯示例源代码
  12. ICML2022论文解读『Sparse Double Descent: Where Network Pruning Aggravates Overfitting』
  13. 一种提取HTML网页正文的方法
  14. PAT编程(python) 1004 成绩排名
  15. 6-9 计算捐款总量 (10 分)
  16. 人到中年这种茶要多喝,越喝血管越干净!坚持一个月,头晕眼花不再来!
  17. 长沙鸿蒙置业楼盘,来了!来了!湖南金融中心北中心,全新盘规划公示!刚需户型为主!...
  18. simulink仿真控制代数环问题
  19. 我的压箱底,500G视频网盘分享
  20. 解决Tuxera试用过期重装问题

热门文章

  1. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
  2. hibernate联合主键 注解方式
  3. linux_iptables 详解
  4. 使用 IntraWeb (39) - THttpRequest、THttpReply
  5. 条件运算符和条件表达式
  6. java避免空指针异常
  7. HBase中的MemStore
  8. BroadcastChannel页面间通讯
  9. flash player for linux 64,64-bit linux下装什么adobe flash player
  10. Exceptions Errors - 异常与错误