WPF 路由事件总结

1.什么是路由事件

已下为MSDN中的定义

  功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件。

  实现定义:路由事件是一个 CLR 事件,可以由 RoutedEvent 类的实例提供支持并由 Windows Presentation Foundation (WPF) 事件系统来处理。典型的 WPF 应用程序中包含许多元素。 无论这些元素是在代码中创建的还是在 XAML 中声明的,它们构成了一个彼此关联的元素树。

2.冒泡事件和隧道事件

根据事件的定义,事件路由可以按两种方向之一传播,分别为冒泡事件和隧道事件。

  通常在元素树中从源元素向上“冒泡”,直到它到达元素树的根(通常是页面或窗口)。这样您就可以针对源元素的上方层级对象处理事件。例如,可向嵌入的 Grid 元素附加一个 Button.Click 处理程序,而不是直接将其附加到按钮本身。气泡事件有指示其操作的名称(例如,MouseDown)。

   隧道事件采用另一种方式,从根元素开始,向下遍历元素树,直到被处理或到达事件的源元素。这样上游元素就可以在事件到达源元素之前先行截取并进行处理。根据命名惯例,隧道事件通常都以 Preview开头(例如 PreviewMouseDown)。隧道路由事件总在冒泡路由事件之前被触发。

3.WPF事件

  1)生命周期事件:在元素被初始化、加载或卸载时发生这些事件。

    Initialized:某元素被实例化,这时元素已被初始化,但其他元素可能还未初始化。此外尚未应用样式和数据绑定时,属性为true;

    Loaded:整个窗口已经初始化,并应用了样式和数据绑定,该事件发生,这是元素被呈现之前的最后一站。Isloaded属性为true;

    Unloaded:元素被释放时,该事件发生,原因是包含元素的窗口被关闭或元素从窗口中被删除。

  2)鼠标事件:鼠标操作后触发的事件按,如up,down。

  3)键盘事件:键盘动作的结果。

    PreviewKeyDown:隧道,按下一个键时发生;KeyDown:冒泡,按下一个键时发生;

    PreviewTextInput:隧道,当按键完成并且元素正在接收文本输入时发生;TextInput:冒泡;

    PreviewKeyUp:隧道,抬起一个键时发生;

    键盘事件中,一些事件还会挂起另外的一些事件,从而执行更特殊的键盘处理。如TextBox挂起了TextInput事件。

KeyboardDevice属性提供的方法
名称说明
IsKeyDown()事件发生通知是否按下该键
IsKeyUp()事件发生通知是否抬起该键
IsKeyToggled()事件发生时,检验是否处于打开状态,如Caps Lock
  

 

  4)手写笔事件:使用手写笔的结果,在平板上用手写笔代替鼠标。

  5)多点触控事件:由一根或多跟手指在触屏设备上操作的结果,仅在win7中支持这些事件。

      以下多点触控摘自MSDN

       

转载于:https://www.cnblogs.com/SeekHit/p/4896112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值