WPF中的路由事件是沿着VisualTree传递的,作用是用来调用应用程序的元素树上的各种监听器上的处理程序。

(1)冒泡,这种事件处理方式是从源元素向上级流过去,直到到达根节点即顶层节点,一般为最外层的控件。

(2)直接,这种处理方式是在源上处理,主要用在源元素上处理。通常setter和trigger中有所体现,我个人认为VisualState可视状态可能也是直接事件处理,也是依赖属性的状态改变。和Trigger有一定的重复,但是VisualState是通过生硬的动画间接实现依赖属性的改变。

(3)隧道,又称作Preview事件,和冒泡事件处理方式相反的。元素树的根位置调用事件处理程序,依次向下直到源元素位置。

隧道事件和冒泡事件一般成对出现。同一事件,执行时首先是隧道事件,然后是冒泡事件。

二 · Routed Events(路由事件) 与 Commands(命令)

Event 和 Command 是程序内部通信基础,Routed Events 能够发起多重控件,并且能有序和用户沟通。

Commands是.NET Framework 提供的核心构架,来激活和去除高级别任务。

由此衍生的Animation是events的更进一步。让你能够以友好互动的方式使用Event架构,来使用多重控件。

一 · 路由事件的三种方式/策略(冒泡 直接 隧道)的更多相关文章

  1. WPF路由事件二:路由事件的三种策略

    一.什么是路由事件 路由事件是一种可以针对元素树中的多个侦听器而不是仅仅针对引发该事件的对象调用处理程序的事件.路由事件是一个CLR事件. 路由事件与一般事件的区别在于:路由事件是一种用于元素树的事件 ...

  2. Android 触发Button按钮事件的三种方式

    1.新创建一个类 2.使用内部类 3.当多个button按钮时,为简化代码而创建的实例listener 贴代码: MainActivity.Java  文件: package com.android. ...

  3. NGUI注册事件的三种方式

    1.第一种方式 当一个元素要执行某个方法,而这个方法在此元素赋予的脚本上有,那么直接会调用此方法,但此方法的名称必须是内置的固定名称,例如OnClick,OnMouseOver,OnMouseOut等 ...

  4. jquery调用click事件的三种方式

    第一种方式: $(document).ready(function(){ $("#clickme").click(function(){ alert("Hello Wor ...

  5. 界面跳转+Android Studio Button事件的三种方式

    今天学习界面跳转 java类总是不能新建成功 看了网上教程 (20条消息) 关于android studio无法创建类或者接口问题的解决方法_qq_39916160的博客-CSDN博客 可以新建了 但 ...

  6. js中点击事件方法三种方式的区别

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 (1)注意函数名没有双引号. ...

  7. javascript中定义事件的三种方式

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...

  8. JS创建事件的三种方式(实例)

    1.普通的定义方式 <input type="button" name="Button" value="确定" onclick=&qu ...

  9. javascript中定义事件的三种方式 分类: C1_HTML/JS/JQUERY 2014-08-07 10:27 634人阅读 评论(0) 收藏

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...

随机推荐

  1. 如何统计自动化测试用例的ROI 【投入产出比/投资回报率】

    一. 自动化测试的投入有哪些? 1. 自动化测试的软件平台投入 自动化测试平台的开发时间,实施时间. 2.  自动化测试的框架开发投入+框架维护的投入 开发自动化测试脚本使用的框架,例如通过一些现有框 ...

  2. python 动态指定header获取网页源代码的函数

    import random import requests def get_htmla(url): aui=0 while aui==0: try: header={'User-Agent':'Moz ...

  3. python -- 程序的结构语句

    一.顺序结构 顺序结构是python脚本程序中基础的结构,它是按照程序语句出现的先后顺序进行依次执行 二.选择结构 选择结构是通过判断某些特定的条件是否满足来决定程序语句的执行顺序 常见的有单分支选择 ...

  4. 安装geatpy库到指定的conda虚拟环境中

    在Anaconda Prompt中输入conda install geatpy,提示找不到这个库: 输入pip install geatpy,安装成功:但是安装在默认conda环境下(以下为pycha ...

  5. POJ3268-最短路径-反向存边

    因为是单向边,牛儿来回的路径长度并不相同,所以需要用两次dijkstra,一次正向从x开始dijkstra,再将边全部反向存再来一次. 因为是板子题比较良心n比较小,我们就可以用矩阵来存储啦.如果n比 ...

  6. JMeter Gui – TestElement约定[转]

    转自https://www.cnblogs.com/yigui/p/7615635.html 在编写任何JMeter组件时,必须注意某些特定的约定--如果JMeter环境中正确地运行JMeter组件, ...

  7. 02.反射Reflection

    1. 基本了解 1.1 反射概述 文字说明 审查元数据并收集关于它的类型信息的能力称为反射,其中元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个 ...

  8. 使用vue实现用户管理 添加及删除功能

    简单的管理系统-增删改查 添加及删除功能 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...

  9. 攻防世界逆向——game

    攻防世界逆向:game wp 攻防世界逆向新手区的一道题目. 是一道windows的creak,动态调试打开是这样的: 题目说明是让屏幕上所有的图像都亮之后,会出现flag,看来应该是可以玩出来的. ...

  10. ES6与ES2015、ES2016以及ECMAScript的区别

    1. ECMAScript 和 JavaScript 的关系 ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现. javascript是netscape ...