前面的博文:WPF拖动总结 中DebugLZQ遇到的问题是:DebugLZQ给容器中所有UI控件注册一个MouseLeftButton事件,Button控件无法捕获这儿事件的问题,加个断点看下,程序根本不到达这个地方。当时只是简短的提了一下,觉得不够,因此决定再发一篇博文来说一下。

foreach (UIElement uiEle in LayoutRoot.Children)
{uiEle.MouseMove += new MouseEventHandler(Element_MouseMove);uiEle.MouseLeftButtonDown += new MouseButtonEventHandler(Element_MouseLeftButtonDown);uiEle.MouseLeftButtonUp += new MouseButtonEventHandler(Element_MouseLeftButtonUp);
}

有人说更改Button控件的ClickedMode=Hover,DebugLZQ试了下问题多多,瞎扯淡。

类似的问题还有,如我想实现拖动TextBox控件的时候也不行,MouseLeftButtonDown事件依然无法触发。

用的更多的场景是,我程序中有一个第三方控件,我需要捕获这个控件的某个路由事件,但是这个事件在该第三方控件的事件处理中被标记为Handled=true,我们可以怎么来做?

下面是解决问题的代码片段:

if (uiEle is Button || uiEle is TextBox)
{uiEle.AddHandler(Button.MouseLeftButtonDownEvent, new MouseButtonEventHandler(Element_MouseLeftButtonDown), true);
}

这个代码的关键点是最后那个true,它告诉wpf引擎call这个handle,即使它被标记为Handled=true。
由此可见,WPF路由事件被标记为handled以后,并不是不在visual tree上传递了;而是,不去call这个handler了。

希望对你有帮助~

转载于:https://www.cnblogs.com/DebugLZQ/archive/2013/05/09/3069273.html

WPF捕获事件即使这个事件被标记为Handled相关推荐

  1. WPF,Silverlight与XAML读书笔记第八 - WPF新概念之三路由事件

    说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 路由事件是专门设计用于在元素树中使用的事件. ...

  2. 【WPF】ListBox嵌套与事件冒泡

    [WPF]ListBox嵌套与事件冒泡 原文:[WPF]ListBox嵌套与事件冒泡 问题:两个ListBox嵌套后,当鼠标位于内部ListBox上,鼠标滚轮事件会被内部ListBox接收,导致外层L ...

  3. WPF经典教程--键盘输入事件, 鼠标输入事件, 焦点处理

    一.键盘和键盘事件 WPF提供了一个基本的键盘类(System.Input.Keyboard类),该类提供键盘相关的事件,方法和属性,以提供有关键盘状态的信息.键盘事件也由诸如UIElement XA ...

  4. JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)

    文章目录 事件对象 获取事件对象 部分常用属性 事件流 事件捕获概念: 事件冒泡概念: 阻止事件流动: 相同的鼠标经过事件: 两种(监听事件)注册事件的区别: 传统on注册(L0) 事件监听注册(L2 ...

  5. [JS] 事件冒泡,阻止事件冒泡,事件的三个阶段(捕获,目标,冒泡)

    事件冒泡 添加三个套在一起的div元素,在最里面放一个button,感受事件触发时从里到外"冒泡"的过程. 给每个div都加一个事件:点击时就alert test.html < ...

  6. JavaScript之事件冒泡和事件捕获详细介绍

    怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别,有需要的朋友可以参考一下 (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: ...

  7. javascript中的事件冒泡、事件捕获和事件执行顺序

    谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有 ...

  8. JS 事件冒泡和事件捕获

    原文:https://www.cnblogs.com/qq9694526/p/5653728.html JS 事件冒泡和事件捕获 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jq ...

  9. js之事件冒泡和事件捕获

    事件冒泡(的过程):事件从发生的目标(event.srcElement||event.target)开始,沿着文档逐层向上冒泡,到document为止. 事件捕获(的过程):则是从document开始 ...

  10. js 事件流的事件冒泡和事件捕获与阻止事件传播

    为了方便引入事件流的概念,我们先来说说什么是事件. 事件就是用户或浏览器自身执行的某种动作.换句话说,我们在浏览网页或者 APP 时,通常会在设备上产生很多交互性的操作,例如点击.选择.滚动屏幕.键盘 ...

最新文章

  1. Linux操作系统(一:基本操作)
  2. 网站SEO优化之如何发布外链
  3. Boost:以协程的方式实现echo服务器的实例
  4. TempTable临时表
  5. 360安全卫士v3.0beta3版发布!
  6. 编写计算机取余程序_必须收藏,2020年专升本计算机常考知识点总结,抓分的关键点...
  7. 安卓rom制作教程_刹那 刷机教程201三星S10 N10等系列 韩版国行安卓9升级10 详细步骤...
  8. AWVS14.5最新版的安装与使用
  9. 如何将FLV视频转成MP3格式?
  10. Chromium OS Autotest 概述
  11. NmRF:从RNA序列中鉴定多物种RNA2‘-o-甲基化修饰位点(假尿苷位点)
  12. 模拟人生 java 安卓版,超级模拟人生官方下载_超级模拟人生安卓版预约下载v1.0_3DM手游...
  13. python调用mysql并在前台做数据展示
  14. 孙氏太极拳--无极桩
  15. java 复制excel_PoiUtil.java 用于excel间sheet复制
  16. 最新抖音简单无人直播教程
  17. CubeMX+Eclipse+Jlink STM32开发环境搭建
  18. Commvault发布横向扩展一体机 矛头对准Rubrik和Cohesity
  19. 软件测试220道试题及答案
  20. 【随笔】IT圈的头衔泡沫

热门文章

  1. python通过文件路径读取图片
  2. 字典序的理解以及python实现
  3. OpenCV实现验证otsu算法
  4. oracle 游标取字段名称,Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串...
  5. alexnet论文_【SOT】Siamese RPN++ 论文和代码解析
  6. C++ std::shared_ptr是什么意思
  7. FISCO BCOS rpc端口、channel端口、p2p端口 怎么用是什么
  8. 《我一开口,就能说服所有人》读书随记
  9. 去除移动端alert/confirm的网址(url)
  10. LeetCode----两数之和