WPF 路由事件 数据驱动 、Window 事件驱动

消息层层传递,遇到安装有事件侦听器的对象,通过事件处理器响应事件,并决定事件是否继续传递;在这里插入图片描述
在这里插入图片描述
后置代码中使用AddHandler方法设置事件监听器,该方法的
第一个参数是指定监听的路由事件类型对象,
第二个参数是指定事件处理器,处理器方法由RoutedEventHandler对象包装,
此处要注意,跟原始事件处理器不同的是,
路由事件处理器的第一个参数sender,是监听事件的控件对象在此处就是事件监控器放在的位置对应=》事件的拥有者的对象(上图就是MainWindow对象),而我们要获取是谁激发的事件则是根据
第二个参数e的OriginalSource属性。 当我们捕获到关心的事件时,
控制事件不再继续传播该怎么做呢,事件处理器的第二个参数e有个Handled属性,
该属性是个bool值,设置其为true即可。

事件监控器 可以 在后端指定(如上图),也可以在xaml 前端 指定

在这里插入图片描述

在这里插入图片描述
通过为ButtonBase(Button的父类)的Click路由事件处理器绑定方法,来实现单击事件的监听。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
StackPanel的MouseLeftButtonDown也是一个路由事件,也可以叫“附加事件”。其实“附加事件”也是路由事件,只是个文字游戏,为什么还要另外起个名字呢?原来路由事件的宿主都是那些拥有可视化实体的界面元素(界面用户可以看见的);
而附加事件则不具备显示在用户界面上的能力(grid 、stackpanel等布局的控件)。
在这里插入图片描述

相关推荐

  1. WPF.NET开发】如何创建自定义事件

    2024-03-30 11:36:06       44 阅读
  2. 常见概念之事件驱动

    2024-03-30 11:36:06       11 阅读
  3. WPF.NET开发】将事件标记为已处理和类处理

    2024-03-30 11:36:06       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 11:36:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 11:36:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 11:36:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 11:36:06       18 阅读

热门阅读

  1. C#WPF控件Button详解

    2024-03-30 11:36:06       18 阅读
  2. C#热门技术应用:探索.NET Core与ASP.NET Core的前沿

    2024-03-30 11:36:06       16 阅读
  3. Conda 命令

    2024-03-30 11:36:06       20 阅读
  4. 3月28日,每日信息差

    2024-03-30 11:36:06       17 阅读
  5. TCL常用语法

    2024-03-30 11:36:06       20 阅读
  6. Oracal执行计划解析

    2024-03-30 11:36:06       20 阅读
  7. tensorflow | onnx模型转pb

    2024-03-30 11:36:06       21 阅读
  8. MYSQL索引失效的情况

    2024-03-30 11:36:06       21 阅读
  9. 论STM32如何使用I2C协议

    2024-03-30 11:36:06       19 阅读