WPF自定义RoutedEvent事件示例代码
(1)自定义路由事件参数对象
(2)声明并注册路由事件
(3)为路由事件添加CLR事件包装
(4)创建可以激发路由事件的方法
(5)Xaml(behind code引用)
(6)事件处理
public class MyObjectRoutedEventArgs:RoutedEventArgs{
public MyObjectRoutedEventArgs(RoutedEvent routedEvent, object source) : base(routedEvent, source) { }
public DateTime ClickTime { get; set; }
}
public class MyObject:Button{
//注册实例化路由事件,Bubble\Direct\Tunnel
public static readonly RoutedEvent MyObjectRoutedEvent
=EventManager.RegisterRoutedEvent("OnMyObjectClick",RoutingStrategy.Bubble
,typeof(EventHandler<MyObjectRoutedEventArgs>),typeof(MyObject);
//CLR包装
public Event RoutedEventHandler MyObjectAutoSNHandler{
add{this.AddHanler{MyObjectRoutedEvent,value};}
remove{this.RemoveHanler{MyObjectRoutedEvent,value};}}
}
public override OnClick(){
base.OnClick();
MyObjectRoutedEventArgs args=new MyObjectRoutedEventArgs();
args.SerialNumber="生成流水号";
args.Subject="生成主题";
使用RaiseEvent(args)来触发路由事件
this.RaiseEvent(args);
}
public static readonly DependencyProperty PageIndexProperty = DependencyProperty.Register("PageIndex", typeof(int), typeof(MoonPdfPanel), new UIPropertyMetadata(1));public int PageIndex{ get {return (int)GetValue(PageIndexProperty);} set { SetValue(PageIndexProperty, value); }}public static readonly RoutedEvent PageIndexChangedEvent = EventManager.RegisterRoutedEvent("PageIndexChanged", RoutingStrategy.Bubble, typeof(RoutedPropertyChangedEventHandler<int>), typeof(MoonPdfPanel));public event RoutedPropertyChangedEventHandler<int> PageIndexChanged{ add { AddHandler(PageIndexChangedEvent, value); } remove { RemoveHandler(PageIndexChangedEvent, value); }}// 触发事件,结尾一定要使用RaiseEvent(args)来触发路由事件。RoutedPropertyChangedEventArgs<int> args = new RoutedPropertyChangedEventArgs<int>( val, this.GetCurrentPageNumber(), PageIndexChangedEvent); this.RaiseEvent(args);WPF自定义RoutedEvent事件示例代码的更多相关文章
- WPF自定义RoutedEvent事件代码段
今天在写东西的时候,发现常用的代码段里没有RoutedEvent的,因此,写了一个代码段,方便以后使用,顺便记录一下,如何做代码段. 1.在项目中新建一个XML文件,将扩展名修改为snippet. 2 ...
- WPF 自定义路由事件
如何:创建自定义路由事件 首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent ...
- Wpf自定义路由事件
创建自定义路由事件大体可以分为三个步骤: ①声明并注册路由事件. ②为路由事件添加CLR事件包装. ③创建可以激发路由事件的方法. 以ButtonBase类中代码为例展示这3个步骤: public a ...
- WPF自定义路由事件(二)
WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件 WPF ...
- WPF自定义路由事件(一)
首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent RegisterRoute ...
- 细说WPF自定义路由事件
WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件 W ...
- WPF:自定义路由事件的实现
路由事件通过EventManager,RegisterRoutedEvent方法注册,通过AddHandler和RemoveHandler来关联和解除关联的事件处理函数:通过RaiseEvent方法来 ...
- javascript权威指南第13章 事件示例代码
html 部分 <!DOCTYPE html> <html> <head> <title>Event Bubling Example</title ...
- WPF 自定义路由事件 与 附加路由事件
为student添加附件事件
随机推荐
- SGU438 The Glorious Karlutka River =)(最大流)
题目大概说有m个人要过一条宽W的河,人最远跳远距离是d,河上有n个垃圾堆,每个垃圾堆都有坐标和同一时间能容纳的人数,问所有人最少要跳几次才能跳到对岸. 又是一题根据时间拆点的最大流. 二分时间建容量网 ...
- LightOJ1105 Fi Binary Number(数位DP)
题目要求第k个没有连续两个1的二进制数. 这算数位DP吧,只不过以前遇到的是统计区间的数字情况,而这题是求第几个数字,差不多是反过来的. 本来我想用状态dp[i][0/1]表示长度i末尾0或1的二进制 ...
- Repeatless Numbers[POJ2956]
Repeatless Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1719 Accepted: 726 ...
- BZOJ2883 : gss2加强版
首先离散化颜色 设pre[x]表示与x颜色相同的点上一次出现的位置,对于每种颜色开一个set维护 修改时需要修改x.x修改前的后继.x修改后的后继 询问[l,r]等价于询问[l,r]内pre[x]&l ...
- 分布式流式处理框架:storm简介 + Storm术语解释
简介: Storm是一个免费开源.分布式.高容错的实时计算系统.它与其他大数据解决方案的不同之处在于它的处理方式.Hadoop 在本质上是一个批处理系统,数据被引入 Hadoop 文件系统 (HDFS ...
- C++做client Java做客户端传送数据
因为要用到,但发现Java怎么都收不到C发来的数据,除非C端自动挂掉,java会一口气全收回来. 后来才发现是因为C发过来的Java用readline是读不到回车的,所以会一直等待. 所以不要用rea ...
- CentOS6.4 安装LVS-RRD监控LVS
1.安装依赖包 yum install -y php httpd bc rrdtool 启动apache (我看网上的一些文档说不能用80端口,但我用80端口试了一下也好使,如果出现不好使的情况就改一 ...
- 【BZOJ】1012: [JSOI2008]最大数maxnumber(树状数组+rmq)
http://www.lydsy.com/JudgeOnline/problem.php?id=1012 树状数组原来我只懂得sum和add的操作,今天才知道可以有求区间最值的操作,我学习了一下写了个 ...
- 简单查看tomcat中部署java服务的内存使用情况
vim tomcat_mem.sh NAME=$1 #部署项目名称 #PID=`ps -ef|grep tomcat|grep $NAME|awk '{print $2}'` PID=`ps -ef| ...
- Brief introduction to Scala and Breeze for statistical computing
Brief introduction to Scala and Breeze for statistical computing 时间 2013-12-31 03:17:19 Darren Wilk ...