WPF笔记2——路由事件

news/2025/2/22 16:43:16/文章来源:https://www.cnblogs.com/zeoHere/p/18567385

WPF的路由事件(Routed Events),允许事件在UI元素层次结构中传播。
在WPF中,UI元素被组织成一棵树,成为可视化树(Visual Tree)。
当一个事件(如鼠标点击)在某个控件上触发时,这个事件可以沿着Visual Tree向上(向树的根部)向下(向树的枝叶)传播;如果不广播就是直接事件。

路由事件有两个主要的传播阶段:
1、冒泡阶段(Bubbing Phase):事件从触发它的控件开始,向上传播到树的根节点。
在这个过程中,每个父元素都有几乎处理这个事件;如果父元素没有处理这个事件,他会继续向上传播;
冒泡事件的明天通常没有特定的前缀,例如:MouseClick 、 KeyDown等;
2、隧道阶段(Tunneling Phase):事件从树的根节点开始,向下传播到触发它的控件。
在这个过程中,每个子元素都有机会处理这个事件;如果没有子元素处理这个事件,它会继续向下传播。
隧道事件的命名以Preview为前缀,例如:PreviewMouseClick、 PreviewKeyDown等

补充:
1、有Stylus的事件,通常与触摸或手写输入相关,如:StylusDown、StylusUp、PreviewStylusMoveEvent等
2、事件的回调函数,即以On开头的方法成员,都被声明为protected virtual void类型,如:

路由事件的关键特性是它们可以被多个元素处理,这为事件处理提供了更大的灵活性。
例如,一个按钮点击事件可以在按钮本身、它的父容器、甚至更高层级的父容器中被处理。这种机制使得开发者可以编写更通用的事件处理代码,而不必为每个控件单独编写事件处理逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840832.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vxe-table 秒级渲染万级数据、极致流畅横向虚拟滚动与纵向虚拟滚动+自适应动态行高

官网:https://vxetable.cn/ 以前老版本不支持虚拟滚动动态行高,vxe-table 新版本发布后,已经可以支持虚拟滚动和动态行高了。如果需要同等行高,只需加上 show-overflow 就可以了,同等行高的渲染性能是最优的,动态行高支持的最大数量低非常多。 建议非必要的场景应该使用同…

C# 高效餐饮管理系统设计与实现

前言 推荐一个C#开发全面、高效的商用餐饮管理系统。该系统集成了餐饮业日常运营所需的各种功能,包括但不限于订单管理、库存控制、财务结算等,通过信息技术手段,帮助餐饮企业实现管理的自动化和智能化。 系统介绍 本系统设计的主要意义在于它能够切实有效地指导工作人员规范…

Docker:Docker搭建Jenkins并共用宿主机Docker部署服务(四)配置Jenkins用户与权限

前言 继续完成Jenkins权限配置管理,Jenkins的搭建与插件安装可以观看上一篇文章:https://www.cnblogs.com/nhdlb/p/18561435 授权策略 首页 -> 系统管理 -> 全局安全配置选择授权策略 :Role-based Authorization Strategy插件创建用户 首页 -> 系统管理 -> 管理…

ENSP之虚拟化安全性的图形界面和命令行不一致的问题

问题报错:40报错 原因:命令行和图形界面不一致 图形界面显示未启用命令行里面并不是如下显示,显示的是hyper-v监控程序正在运行(CMD中输入systeminfo)如果你也遇到此类情况,请参考我的另一份文档 如何关闭VBS的随笔:https://www.cnblogs.com/never-say-die/p/16840030.h…

(原创)odoo Binary字段类型保存文件名称

需要单独指定保存文件名称的字段 清风明月入怀抱,猿鹤听我再抚琴

罗马尼亚-未被完全开发的欧洲瑰宝

罗马尼亚,未被完全开发的欧洲瑰宝自从10月中旬来参加第12届罗马尼亚国际太阳能展(CISOLAR)后,小编同事近日参加完慕尼黑电子展后又杀回到罗马尼亚,结合前线最新消息,给到大家一些信息供参考:罗马尼亚的家庭储能市场正在经历显著的增长,主要得益于政府政策的支持和市场需…

职场小白必备!Win电脑简单又高效的5款工具软件

初入职场,面对繁杂的工作任务,善用高效工具能让我们迅速上手,提升效率,轻松应对各种挑战。今天就给大家分享 5 款 Windows 电脑上简单易用且功能强大的工具软件,助力职场小白快速蜕变。 一、Everything:文件搜索 “闪电侠” 刚踏入职场,电脑里文件越来越多,找个文档常常…

70 个群都来问我的 AI 日报,是这么做的。

最近我给 FastGPT 用户交流群里接入了 AI 日报,每天早上 10 点会自动向群里推送 AI 日报,让群里的小伙伴们第一时间了解到昨天 AI 领域都发生了哪些大事。 效果大概是这个样子的:如果你对 FastGPT 感兴趣,可以直接扫码入群:除此之外,我还同步一份到公司的飞书群里,这样公…

vxe-table 使用单元格选取功能

通过参数 mouse-config.area 启用单元格选取功能、Excel 区域选取。<template><div><vxe-tableborderheight="500":column-config="{resizable: true}":mouse-config="{area: true, extension: false}":data="tableData&quo…

vxe-table 单元格选取功能与多个区域选取功能

多区域选取通过 mouse-config。area 与 area-config.multiple 启用,area-config.selectCellByHeader 用于启用表头选取功能,开启后选取表头自定义选取一整列的所有单元格<template><div><vxe-tableborderheight="500":column-config="{resizab…

Java NIO(io模型,三大组件,网络编程)

一、NIO Java NIO(New I/O,新的输入输出)是 Java 1.4 引入的一套 I/O 库,相比传统的 IO(字节流和字符流),它主要用于处理高效的、非阻塞的 I/O 操作,特别是在需要处理大规模数据或高并发的场景中表现突出。Java NIO 提供了非阻塞模式、内存映射文件、缓冲区等一系列增强…

基于bootstrap4封装的消息对话框组件

在线预览 下载这是一款基于bootstrap4封装的消息对话框组件。该消息组件包括dialog,alert,confirm,input,success,error,notice。并且对话框支持鼠标或手指触摸拖拽。使用方法 在页面中引入下面的文件。lt;link rel="stylesheet" href="bootstrap-4.0.0-dist/…