在界面程序中IsMouseOver 属性用来判断鼠标是否在某个界面元素上悬停。

如果当一个界面元素在逻辑树中被另外一个元素包含,当鼠标同时停在两个元素上的时候,两个元素的IsMouseOver 都是true,无论下面的元素是否被遮住。

IsMouseOver 属性从false变为true的时候会触发UIElementMouseEnter 事件,当IsMouseOver 属性从true变为 false的时候会触发UIElementMouseLeave 事件。

下面的例子中,我们在一个窗口里放一个包含有一个按钮的StackPanel ,并且当IsMouseOver 属性发生改变的时候修改对应的Label的内容。同时注册他们的MouseEnterMouseLeave 事件。

<Window Name="win1"><StackPanel Name="sp1" Background="Pink" Margin="20,0"><Button Name="btn1" Content="Click Me" HorizontalAlignment="Center" Padding="10,5"/></StackPanel>
</Window>

当鼠标进入窗口的时候,窗口的IsMouseOver 属性变为true,并触发窗口的MouseEnter 事件

当鼠标进入到StackPanel的时候,StackPanelIsMouseOver 属性变为true,并触发StackPanelMouseEnter事件。而窗口的IsMouseOver属性依然为true。

当鼠标移动到按钮上的时候,按钮的IsMouseOver 属性变为true,并触发MouseEnter事件,而窗口和StackPanelIsMouseOver属性依然为true。

当将鼠标移出按钮,StackPanel和窗口的时候,他们的IsMouseOver 属性变为false,并且都触发了MouseLeave 事件。

*****************************************译者注****************************************

IsMouseOver 属性相关的还有IsMouseDirectlyOver 属性。IsMouseDirectlyOver 属性表示鼠标是否直接悬停在控件上方,中间没有控件遮挡。例如上面的例子中,如果鼠标在按钮上方悬停,他们的IsMouseOver 属性都是true,按钮的IsMouseDirectlyOver 属性为true,StackPanel和窗口的IsMouseDirectlyOver 属性为false。

原文地址:https://wpf.2000things.com/2012/10/08/663-how-ismouseover-works-for-nested-elements/




IsMouseOver 和MouseEnter\MouseLeave 事件相关推荐

  1. java mouseenter_关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别

    最近在做的在线考试和课程商城都遇到这样的问题:就是鼠标滑过的时候出现一个层,当鼠标滑到当前层的话mouseover和mouseout在低版本的浏览器会出现闪动的现象,解决这个现象的办法有许多,不过我觉 ...

  2. Vue实现鼠标悬浮隐藏与显示图片效果 @mouseenter 和 @mouseleave事件

    前言 前端vue 有个功能是鼠标移动到指定item上显示出来一个编辑和删除的图标 鼠标悬停在列表那么需要有悬浮显示的列表编辑和删除icon 文字不好描述,因为是web端录屏也比较麻烦 这里用截图说明 ...

  3. mouseover事件和mouseenter事件以及mouseleave事件和mouseout事件的区别

    1.mouseover事件与mouseenter事件 mouseover事件:不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. mouseenter事件:只有在鼠标指针穿过被选 ...

  4. 1、交互优化(防抖与节流、MouseEnter 和 mouseLeave事件)

    需求:二级菜单的显示与隐藏.鼠标移到一级菜单上,会显示二级菜单,移出元素时,二级菜单则会隐藏. 有以下三种实现方法 1.首先我们想到的是通过js的鼠标事件来进行处理,那么我们应该先明确一下几个事件的基 ...

  5. 将文字置于图片之上,防止鼠标频繁交替触发mouseenter和mouseleave事件

    问题描述: 使用标准文档流进行布局,鼠标会频繁触发 mouseenter 和 mouseleave 事件,无法正常修改 spsan 的位置. 该问题需将文字(即 li)置于图片(即 span)之上,防 ...

  6. js 鼠标事件总结 mouseover/mouseout 与mouseenter/mouseleave 傻傻分不清楚?

    1. 鼠标事件 mouseenter mouseleave (一对事件 鼠标的进入和离开) 不支持冒泡 mouseenter:鼠标从元素外部移到元素内部时触发. mouseleave:鼠标从元素内部移 ...

  7. 鼠标浮动到表格的某行 背景颜色变化[mouseover mouseout 以及mouseenter mouseleave]

    之前一直觉得很难,今天用到了 好像超级简单 <table id="tableData"><tr class="flag"><td& ...

  8. 关于一个Panel上鼠标不及时响应MouseLeave事件

    今天做一个鼠标离开panel后,该panel消失的功能,具体就是,使用panel.MouseLeave事件.但是调试中发现这个事件执行的并不及时,有时鼠标都离开了,panel依然没有消失.经过查资料, ...

  9. mouseenter/mouseleave多次触发fadeIn/fadeOut问题

    在一次使用使用mouseenter/mouseleave实现显示/隐藏操作的时候发现会多次触发fadeIn/fadeOut, 效果如下图: 每次会累计触发fadeIn/fadeOut 代码如下 css ...

最新文章

  1. 主流NoSQL及应用场景详解
  2. python好学嘛-Python对于没有计算机基础知识的人来说,好学吗?
  3. java发送http的get、post请求
  4. spark读取文件源码分析-2
  5. 解决Windows Server2008 R2中IE开网页时弹出阻止框
  6. AI算法工程师的一些含泪经验
  7. 如何用hypermesh生成包含interface的流体网格
  8. 计算机无法使用64位itunes,电脑itunes读iphone不了的解决方法
  9. 2021年安全员-C证(山东省-2020版)考试及安全员-C证(山东省-2020版)模拟试题
  10. DHT爬虫和使用BEP协议完成metadata的下载(BT下载)
  11. iapp卸载指定软件代码,iapp删除文件夹代码
  12. 苹果也能做深度学习了!PyTorch宣布支持苹果M1芯片GPU加速:训练快6倍,推理提升21倍...
  13. 概率统计_假设检验——单边检验的接受域和拒绝域
  14. I DEA出现Spring配置错误:class path resource [.xml] cannot be opened because it does not exist
  15. 闪光桐人の实习日记(2023年2月20-24日)
  16. (关于边界填充)cv2.copyMakeBorder()怎么用?及效果展示(opencv)(python)
  17. C语言督学营 学习笔记 (Day11~12)
  18. SEC合规审查办公室2018工作重点:加强对加密货币企业信息披露的监管
  19. 03-Docker-配置用户组及加速器
  20. [含文档+PPT+源码等]精品基于Uniapp+SSM实现的安卓的掌上校园系统[包运行成功]Java毕业设计Android项目源码

热门文章

  1. 重庆云内核受邀参展第17届中博会
  2. PCA算法(python版本)
  3. 永久合同!英国百家公司实行 4 天工作制且不减薪
  4. 青蛙跳台阶问题详解 递归思想
  5. 浅析时序数据库评测和选型
  6. 通过vnc 用电脑 控制 手机
  7. 34. 你与周围人的差距
  8. 一加手机怎么样?一加9 Pro超群屏幕实力再次引领高刷标准
  9. 微信js-sdk图片上传下载——java完整流程
  10. outlook2010点签名死机