*************************
引用网友,便于查找所用.....
创建自定义路由事件和应用分为6个步骤:

(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);

}

5.1 Xaml访问自定义控件与引用自定义事件
<local:MyObject Width="80" Height="25" Background="Blue" MyObjectAutoSNHandler="MyObject_MyObjectAutoSNHandler" />
5.2 通过代码方式,添加监听路由事件
this.ContainerName.AddHandler(MyObject.MyObjectRoutedEvent, new RoutedEventHandler(MyObject_MyObjectAutoSNHandler));
6.事件处理behindcode
void MyObject_MyObjectAutoSNHandler(object sender, MyObjectRoutedEventArgs e)
{
      string sn=e.SerialNumber;
}
 
 
*************************
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事件示例代码的更多相关文章

  1. WPF自定义RoutedEvent事件代码段

    今天在写东西的时候,发现常用的代码段里没有RoutedEvent的,因此,写了一个代码段,方便以后使用,顺便记录一下,如何做代码段. 1.在项目中新建一个XML文件,将扩展名修改为snippet. 2 ...

  2. WPF 自定义路由事件

    如何:创建自定义路由事件 首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent ...

  3. Wpf自定义路由事件

    创建自定义路由事件大体可以分为三个步骤: ①声明并注册路由事件. ②为路由事件添加CLR事件包装. ③创建可以激发路由事件的方法. 以ButtonBase类中代码为例展示这3个步骤: public a ...

  4. WPF自定义路由事件(二)

    WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件 WPF ...

  5. WPF自定义路由事件(一)

    首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent RegisterRoute ...

  6. 细说WPF自定义路由事件

    WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件   W ...

  7. WPF:自定义路由事件的实现

    路由事件通过EventManager,RegisterRoutedEvent方法注册,通过AddHandler和RemoveHandler来关联和解除关联的事件处理函数:通过RaiseEvent方法来 ...

  8. javascript权威指南第13章 事件示例代码

    html 部分 <!DOCTYPE html> <html> <head> <title>Event Bubling Example</title ...

  9. WPF 自定义路由事件 与 附加路由事件

    为student添加附件事件

随机推荐

  1. 状压DP POJ 2411 Mondriaan'sDream

    题目传送门 /* 题意:一个h*w的矩阵(1<=h,w<=11),只能放1*2的模块,问完全覆盖的不同放发有多少种? 状态压缩DP第一道:dp[i][j] 代表第i行的j状态下的种数(状态 ...

  2. Week,Month, Year 日期区间辅助类

    我们在做一些业务系统的时候,经常会用到一些获取时间段的情况.比如要统计某一周.某月.某年 这样一些时间区间内的一些业务数据.这时候我们就需要获取当前时间段内的一些起止日期.这里分享一个通用的日期辅助类 ...

  3. Square Coins[HDU1398]

    Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  4. BZOJ3413 : 匹配

    FDUSC前刷刷题吧.. 本题每个询问就是说将询问串与主串每个后缀匹配,若匹配成功则结束,否则加上lcp的长度 对主串建立后缀树,并用主席树维护DFS序 对于每个询问串,找到最后走到的点fin_nod ...

  5. input:focus

    input:focus,select:focus,textarea:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2p ...

  6. BZOJ3924 [Zjoi2015]幻想乡战略游戏

    Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来, ...

  7. 基于SpringMVC框架项目Demo

    Git地址:https://github.com/JavaWeb1024/SpringMVC 1.     框架简介: 为打造一套集群高可用的框架,集成的技术目前比较成熟,稳定.相关的知识点在网络上也 ...

  8. java正则表达式过滤html标签

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * <p> * Title: HTML相关的正则表达 ...

  9. 地球上最大的PHP站点 后端技术解密

    Facebook的扩展性挑战 在我们讨论细节之前,这里有一些Facebook已经做的软件规模: ◆Facebook有570000000000每月页面浏览量 (据Google Ad Planner) ◆ ...

  10. HDU 1075 What Are You Talking About(Trie的应用)

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...