wpf自定义路由事件

csharp 复制代码
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.DataContext = new CustomButton();  
        }
        private void Handler_ConditionalClick(object sender, MyRoutedEventArgs e)
        {
            MessageBox.Show(e.RoutedMessage);
        }      
    }
    public class MyRoutedEventArgs : RoutedEventArgs
    { 
        public string RoutedMessage { get; set; }      
        public MyRoutedEventArgs(RoutedEvent routedevent) : base(routedevent){ }
    }
    public class CustomButton : Button
    {       
      //具有浮升
      //策略的路由事件的标识符命名为 <event name>Event。 例如,如果事件名为 Tap,则标识符应命名为 TapEvent。
     //具有
     //隧道策略的路由事件的标识符命名为 Preview<event name>Event。 例如,如果事件名为 Tap,则标识符应命名为 PreviewTapEvent。
                        

        public static readonly RoutedEvent ConditionalClickEvent = EventManager.RegisterRoutedEvent(
            name: "ConditionalClick",
            routingStrategy: RoutingStrategy.Bubble,
            handlerType: typeof(EventHandler<MyRoutedEventArgs>),
            ownerType: typeof(CustomButton));

        // Provide CLR accessors for assigning an event handler. .NET CLR 属性包装
        public event RoutedEventHandler ConditionalClick
        {
            add { AddHandler(ConditionalClickEvent, value); }
            remove { RemoveHandler(ConditionalClickEvent, value); }
        }        
        protected override void OnClick()
        {
             MyRoutedEventArgs routedEventArgs = new MyRoutedEventArgs(routedevent: ConditionalClickEvent) { RoutedMessage="zen"};         
            RaiseEvent(routedEventArgs);
            base.OnClick();
        }
    }





自带事件应用

1》》

2》》

相关推荐
xcLeigh16 小时前
WPF在特定领域的应用:打造一款专业的图像编辑工具
c#·wpf
吾与谁归in1 天前
WPF给ListBox中的每一项添加右键菜单功能
c#·wpf
千里码!1 天前
RocketMQ延迟消息深度解析:原理、实践与性能调优
wpf·rocketmq
de之梦-御风2 天前
【.NET】WinForms 和 WPF 在性能方面的对比
.net·wpf
Zzu_zzx2 天前
c# wpf 开发中安装使用SqlSugar操作MySql数据库具体操作步骤保姆级教程
mysql·c#·wpf
白白白白纸呀2 天前
WPF框架---MvvmLight介绍
开发语言·c#·wpf
battlestar3 天前
WPF 解决加载顺序,Combox 增加属性,并关联text
windows·wpf
xcLeigh3 天前
WPF高级 | WPF 3D 图形编程基础:创建立体的用户界面元素
ui·3d·c#·wpf
一个处女座的程序猿O(∩_∩)O4 天前
鸿蒙与DeepSeek深度整合:构建下一代智能操作系统生态
华为·ai·wpf·harmonyos
为风而战4 天前
WPF+WebView 基础
wpf