none
在自定义WPF路由事件时使用自定义的事件参数类 RRS feed

答案

  • 你好,

    我想你只要完成一下4步就可以完成你的需求了:

    --> 自定义WPF路由事件时使用自定义的事件参数类。

    第一步:创建一个自己的Delegate,可以参考下面的代码:

    public delegate void MyRoutedEventHandler(object sender, MyRoutedEventArgs e);

    第二步:创建自己的Event Args,可以参考下面的代码:

    public class MyRoutedEventArgs : RoutedEventArgs { ... }

    第三步:在你自己的类中定义一个可以触发事件,可以参考下面的代码:

    public static readonly RoutedEvent MyRoutedEvent =

                EventManager.RegisterRoutedEvent("MyRouted", RoutingStrategy.Bubble, typeof(MyRoutedEventHandler), typeof(MyClass));

     

    public event MyRoutedEventHandler MyRouted

    {

        add { this.AddHandler(MyRoutedEvent, value); }

        remove { this.RemoveHandler(MyRoutedEvent, value); }

    }

    第四步:在你自己的类中使用RaiseEvent触发事件,可以参考下面的代码:

    this.RaiseEvent(new MyRoutedEventArgs(...))

    这样你就可以完成你的需求了,如果对于我的解释有不清楚的,你可以参考这篇MSDN文档,链接是:

    http://msdn.microsoft.com/zh-cn/library/ms752288.aspx

    在这上面的例子你也可以到从SDK Sample中下载到,在SDK Sample中的名字是:RoutedEventCustomApp。看完这篇文档和例子,我想你就明白你要问的问题了。

     

    Best regards,


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 槑槑 2011年2月11日 14:15
    2011年2月11日 13:33
    版主

全部回复

  • 使用EventManager.RegisterRoutedEvent注册一个自定义路由事件时,它的第3个参数即可指定
    2011年2月11日 9:47
  • 嗯,关键是用哪个委托,一般是RoutedEventHandler,但是这个不包含特定的事件数据,小弟初学者,还望能给出部分代码供参考
    2011年2月11日 9:50
  • 你好,

    我想你只要完成一下4步就可以完成你的需求了:

    --> 自定义WPF路由事件时使用自定义的事件参数类。

    第一步:创建一个自己的Delegate,可以参考下面的代码:

    public delegate void MyRoutedEventHandler(object sender, MyRoutedEventArgs e);

    第二步:创建自己的Event Args,可以参考下面的代码:

    public class MyRoutedEventArgs : RoutedEventArgs { ... }

    第三步:在你自己的类中定义一个可以触发事件,可以参考下面的代码:

    public static readonly RoutedEvent MyRoutedEvent =

                EventManager.RegisterRoutedEvent("MyRouted", RoutingStrategy.Bubble, typeof(MyRoutedEventHandler), typeof(MyClass));

     

    public event MyRoutedEventHandler MyRouted

    {

        add { this.AddHandler(MyRoutedEvent, value); }

        remove { this.RemoveHandler(MyRoutedEvent, value); }

    }

    第四步:在你自己的类中使用RaiseEvent触发事件,可以参考下面的代码:

    this.RaiseEvent(new MyRoutedEventArgs(...))

    这样你就可以完成你的需求了,如果对于我的解释有不清楚的,你可以参考这篇MSDN文档,链接是:

    http://msdn.microsoft.com/zh-cn/library/ms752288.aspx

    在这上面的例子你也可以到从SDK Sample中下载到,在SDK Sample中的名字是:RoutedEventCustomApp。看完这篇文档和例子,我想你就明白你要问的问题了。

     

    Best regards,


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 槑槑 2011年2月11日 14:15
    2011年2月11日 13:33
    版主
  • Sheldon _Xiao   版主,,,谢谢你拉,,呵呵

    你有没有弄个什么WPF的群啊,,,MSN的huozheQQ的,,,说一下吧,,,这样交流起来方便了就..

     

    再次感谢!!

    2011年2月11日 14:18
  • 这里有一个,是MSDN版主开的, 你可以加下 QQ群: 113404016
    Best day, Best life
    2011年2月11日 14:36
  • OK,呵呵
    2011年2月12日 1:22