WPF之深入浅出话事件

本文深入探讨了WPF中的路由事件,揭示了其如何从传统的直接事件模型进化而来,降低了耦合度,提高了灵活性。路由事件允许消息在UI组件树上沿着特定方向传递,提供了冒泡和隧道两种策略。文中还介绍了如何声明、注册和使用自定义路由事件,以及如何处理RoutedEventArgs的Source和OriginSource。此外,还讨论了附加事件,即不具备可视实体的类如何通过附加事件与其他对象交互。
摘要由CSDN通过智能技术生成

就像属性系统在WPF中得到了升级、进化为依赖属性一样,事件系统在WPF也得到了升级-----进化成为了路由事件(Routed Event),并在其基础上衍生出命令传递机制。这些机制在很大程度上减少了对程序员的束缚,让程序的设计和实现更加的灵活,模块之间的耦合度也进一步降低,这一章我们一起来领略一下新消息机制的风采。

8.1              近观WPF的树形结构

路由一词的意思大概是这样:起点和终点间有若干个中转站。从起点出发后经过每个中转站时要做出选择,最终以最快的路径形式到达终点。编程的本质是借助编译器来扩展操作系统的功能。所以,程序的基本运行不可能脱离操作系统------Windows本身就是一种消息驱动的操作系统,所以我们的程序注定是消息驱动的。程序运行的时候也要把自己的消息系统和整个系统的消息系统“连通”才能够被执行或者相应。纵观几代WIndows平台程序开发,最早的WIndowAPI开发(C语言)和MFC开发我们可以直接看到各种消息并可以定义自己的消息;到了COM和VB时代,消息被分装为事件(EVENT)并一直沿用至.net开发平台---无论怎么说,程序间模块使用消息互相通讯的本质是没有变的。从Windows API到传统的.NET开发,消息的传递都是直接模式的---即消息直接由发送中交给接收者。WPF把这种直接消息模型升级为可传递的消息模型----前面我们已经知道,WPF的UI是由布局控件和控件构成的树形结构,

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星火燎猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值