WPF自定义路由事件
程序员文章站
2024-03-27 00:01:53
与依赖项属性类似,wpf也为路由事件提供了wpf事件系统这一组成。为一个类型添加一个路由事件的方式与为类型添加依赖项属性的方法类似,添加一个自定义路由事件的步骤:一、声明路由事件变量并注册定义只读的静...
与依赖项属性类似,wpf也为路由事件提供了wpf事件系统这一组成。为一个类型添加一个路由事件的方式与为类型添加依赖项属性的方法类似,添加一个自定义路由事件的步骤:
一、声明路由事件变量并注册
定义只读的静态变量字段routeevent类来声明一个变量,然后使用eventmanager的registerroutedevent()方法向事件系统注册路由事件,该方法的签名如下:
该方法带有四个参数:
- 第一个参数name表示该路由事件在wpf事件系统中的名称。
- 第二个参数routingstrategy是routingstrategy类型的枚举值,标明了路由事件的路由策略,共三种策略:
- 第一种bubble是冒泡策略,这种模式是从触发点向根节点传递,直到最外层。
- 第二种是direct就是传统的事件一样的。
- 第三种是隧道策略,这和冒泡策略相反,向下传递。
- 第三个参数handlertype用来标明事件处理函数的类型。
- 第四个个参数ownertype则用来标明拥有该路由事件的类型。
eventmanager的registerroutedevent()方法返回一个routedevent类型的实例。一般情况下,该实例将由一个public static readonly字段所保存。
二、通过标准的.net事件包装路由事件
事件包装器使用addhandler方法来添加路由事件的调用程序,然后使用removehandler来删除已经添加的调用程序。
三、创建可以激发路由事件的方法
演示创建自定义路由事件:
1、新建用户控件,添加一个button按钮,添加按钮的click事件,xaml代码如下:
2、在用户控件的后台代码中创建自定义路由事件,c#代码如下:
3、在主界面中引入新创建的用户控件,使用自定义的路由事件myclick,并为myclick事件编写调用的方法,xaml代码如下:
4、routeeventcontrol_myclick方法的后台代码如下:
5、运行程序,单击button按钮,效果如下所示:
到此这篇关于wpf自定义路由事件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: Sql Server之数据类型详解
推荐阅读
-
WPF自定义路由事件
-
一个好看的WPF开源控件库——PanuonUI自定义样式控件库
-
controller如何拿到自定义view的点击事件?
-
自定义javascript事件 javascript
-
【Stimulsoft Reports.WPF教程】保存并加载Designer的事件
-
WEB前端:vuejs全家桶(35):模块化开发:vue-router模块化、自定义组件添加事件
-
Flex自定义事件时为什么要重载clone()方法(转载) 博客分类: Flex Flex自定义事件重载clone
-
Flex自定义事件 博客分类: Flex Flex自定义事件
-
koa --- > 自定义路由读取规则
-
Laravel中重写资源路由自定义URL的实现方法