美文网首页WPF
路由事件

路由事件

作者: 落地成佛 | 来源:发表于2019-10-11 08:57 被阅读0次

二、使用

2.1 例子

    //自定义事件类
    public class MyEventControl:ContentControl
    {
        public static readonly RoutedEvent AAAEvent = EventManager.RegisterRoutedEvent("bbb", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyEventControl));

        public event RoutedEventHandler AAA
        {
            add
            {
                base.AddHandler(AAAEvent, value);
            }
            remove
            {
                base.RemoveHandler(AAAEvent, value);
            }
        }
        protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            RaiseEvent(new RoutedEventArgs(AAAEvent));
        }
    }
// xaml页面
<local:MyEventControl x:Name="mybtnsimple"  
AAA="Mybtnsimple_AAA">Click to see Tap custom event work</local:MyEventControl>
// xaml 后台
 private void Mybtnsimple_AAA(object sender, RoutedEventArgs e)
 {
     MessageBox.Show("666");
 }

2.2 路由类型

  • 冒泡路由(从下到上)
  • 隧道路由(从上到下)
  • 直接路由

2.3 添加处理程序

  • Xaml
 <Image Name="img1" Source="Images/1.jpg" MouseEnter="Image_MouseEnter"></Image>
  • 后台+=
 img1.MouseEnter += new MouseEventHandler(Img_MouseEnter);
or
img1.MouseEnter += Img_MouseEnter;
  • AddHandler()方法
 img1.AddHandler(Image.MouseEnterEvent, new MouseEventHandler(Img_MouseEnter));

2.2 断开事件处理程序

  • 通过-=
//第一种写法。
img1.MouseEnter -= new MouseEventHandler(Img_MouseEnter);
//第二种写法。
img1.MouseEnter -= Img_MouseEnter;
  • RemoveHandler()方法
img1.RemoveHandler(Image.MouseEnterEvent, new MouseEventHandler(Img_MouseEnter));

2.3 RoutedEventArgs

Source

Source表示的是LogicalTree上的消息源头

OriginalSource

OriginalSource表示的是VisualTree上的源头

RoutedEvent

通过事件处理程序为触发的事件提供RoutedEvent对象,如果同一个事件处理程序处理不同的事件,这一信息是非常有用的。

Handled

该属性允许终止事件的冒泡或隧道过程,如果将该属性设置为true,就终止了传递。

相关文章

  • 路由事件

    二、使用 2.1 例子 2.2 路由类型 冒泡路由(从下到上) 隧道路由(从上到下) 直接路由 2.3 添加处理程...

  • 前端路由原理

    前端路由原理 ======== HashChange 事件 通过监听hasgchange事件,判断location...

  • WPF之路-路由事件

    理解路由事件 路由事件是一种可以针对元素树中的多个侦听器而不是仅仅针对引发该事件的对象调用处理程序的事件,也就是说...

  • Spring Cloud 网关服务 zuul 三 动态路由

    zuul动态路由 网关服务是流量的唯一入口。不能随便停服务。所以动态路由就显得尤为必要。 数据库动态路由基于事件刷...

  • 【antd-pro】路由配置、select组件层级

    路由配置 屏蔽input默认的回车事件 禁掉原生事件:onPressEnter={(e: any)=>{e.pre...

  • flutter中事件上报的思路

    事件收集 记录事件的名称 和附加数据 页面事件监听路由变换 实现统计 点击事件封装点击的 widget 例如:Ge...

  • vue其他知识点简单记录

    路由: 过渡动画 组件 数据绑定 事件 方法:事件可以调用方法 子父组件传值 插槽 动态组件

  • vue何时清除定时器

    一、在组件销毁前 二、通过focus和blur事件 三、通过visibilitychange事件 四、非指定路由名...

  • 日志处理

    最佳实践: 应用不应当写、路由或者管理日志。而是将事件流写入到stdout或者stderr中, 其余的日志路由管理...

  • vue 篇章一

    参考文献: 官网地址Vue事件修饰符详解mvvm子路由路由器起步props 与 打data区别ajaxgithub...

网友评论

    本文标题:路由事件

    本文链接:https://www.haomeiwen.com/subject/wqihyctx.html