WPF的路由事件

WPF的路由事件

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术: VS

作者:纳西妲小可爱

撰写时间:2022/10/28

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~事件(Event):

微软官网:https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/events-wpf? view=netframeworkdesktop-4.8

Windows消息机制中重要概念之一,最常见的人机交互手段之一

XAML帮助应用管理用户输入,执行不同的行为

引入增强型事件处理系统-Routed Event(路由事件)

事件常常被用于控制更改通知操作

一、事件基础语法:

基础语法:<ObjectName EventName="EventHandle">

事件系统在WPF中被升级进化称为路由事件(Routed Event),并在其基础上衍生出命令传递机制。这些机制很大程度上减少了对程序员的束缚,让程序的设计和实现更加灵活,模块之间的耦合度也进一步降低。

二、路由事件(Routed Event):

1、什么是路由事件 

WPF中的事件为路由事件,所谓路由事件,MSDN定义如下:

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

        实现定义:路由事件是一个 CLR 事件,可以由 RoutedEvent 类的实例提供支持并由Windows Presentation Foundation (WPF) 事件系统来处理。

2、中断事件路由 

        所有的路由事件都共享一个公共的事件数据基

RoutedEventArgsRoutedEventArgs 定义了一个采用布尔值的 Handled 属性。 Handled 属性的目的在于,允许路由中的任何事件处理程序通过将 Handled 的值设置为 true 来将路由事件标记为“已处理”。

3、自定义路由事件 

        如下面的示例所示,首先使用 RegisterRoutedEvent 方法注册一个 RoutedEvent。按照约定,RoutedEvent 静态字段名称应当以后缀 Event 结束。在本示例中,事件的名称是 Tap,事件的路由策略是 Bubble。在注册调用之后,可以为该事件提供添加和移除公共语言运行时 (CLR) 事件访问器。

        请注意,尽管该事件在本特定示例中是通过 OnTap 虚方法引发的,但您引发事件的方式或者事件响应更改的方式取决于您的需要。 

        还要注意,本示例主要实现 Button 的一整个子类;该子类是作为单独的程序集构建的,之后将在单独的可扩展应用程序标记语言 (XAML) 页上实例化为一个自定义类。这是为了说明这样一个概念:创建子类的控件可以插入到由其他控件组成的树中,在这种情况下,这些控件上的自定义事件具有与任何固有的 Windows Presentation Foundation (WPF) 元素完全相同的事件路由功能。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值