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》》

相关推荐
一念春风16 小时前
Qwen2.5 (AI模型 PC搭建)
人工智能·ai·c#·wpf·模型
互联网散修19 小时前
鸿蒙跨设备实时绘图同步:从零到一实现分布式画板
分布式·wpf·harmonyos
晓纪同学2 天前
WPF-09 命令系统
wpf
晓纪同学2 天前
WPF-10资源系统
wpf
七夜zippoe2 天前
DolphinDB集群部署:从单机到分布式
分布式·wpf·单机·dolphindb·分集群
波波0073 天前
写出稳定C#系统的关键:不可变性思想解析
开发语言·c#·wpf
bugcome_com3 天前
从 MVVMLight 到 CommunityToolkit.Mvvm:MVVM 框架的现代化演进与全面对比
wpf
笺上知微3 天前
基于HelixToolkit.SharpDX 渲染3D模型
wpf
晓纪同学5 天前
WPF-03 第一个WPF程序
大数据·hadoop·wpf
光电大美美-见合八方中国芯5 天前
用于无色波分复用光网络的 10.7 Gb/s 反射式电吸收调制器与半导体光放大器单片集成
网络·后端·ai·云计算·wpf·信息与通信·模块测试