【WPF属性笔记】【IsHitTestVisible】

WPF部分常用的事件与触发条件 WPF部分常用的事件与触发条件 ContextMenuClosing -上下文菜单中关闭事件 ContextMenuOpening -上下文菜单打开 DataContextChanged-数据上下文更改 DragEnter-拖进 DragLeave -拖动离开 DragOver-拖动完成时-在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。 Drop-下降在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。 FocusableChanged-当 Focusable 属性的值更改时发生 G 阅读详情

WPF属性笔记系列

第一章 【WPF属性笔记】【IsHitTestVisible】



前言

关于WPF属性IsHitTestVisible的学习笔记。


一、IsHitTestVisble介绍

  • UIElement.IsHitTestVisble属性:获取或设置一个值,该值声明此元素是否可以作为其呈现内容的某部分的命中测试结果返回。这是一个依赖属性。
  • IsHitTestVisble属性值默认为true
  • 通过设置IsHitTestVisble属性值为false,可以使界面元素不响应鼠标,鼠标事件也不会被触发
  • 通过设置IsHitTestVisble属性值为false,可以禁止所有的鼠标交互,包括控件的点击、通过鼠标点击给控件设置输入焦点等等,都是不起作用的
  • 通过设置IsHitTestVisble属性值为false,虽然鼠标被禁止了,但是通过tab键设置焦点,再使用空格键或者Enter键触发,是正常响应的
  • 如果一个容器设置IsHitTestVisble属性值为false,那么这个容器内所有的子控件都不响应鼠标,即时是子空间设置IsHitTestVisble为true也没用

二、IsHitTestVisble的使用

设置IsHitTestVisble=false,checkbox不再能被命中,且点击它相当于点击它下面的那一层控件,即button,如以下代码,点击checkbox1,能看到✔的有无变化,且触发checkbox1的点击事件,但是点击checkbox2时,✔无变化,且不触发checkbox2的点击事件,反而触发底下一层控件button的点击事件;但是要注意的是,如果不是使用鼠标点击,而是使用tab键切换焦点,使用空格键或enter确认点击,这时候就无区别了。

<Grid>
    <Button Content="button" Click="Button_Click"/>
    <StackPanel>
        <WrapPanel>
            <CheckBox IsChecked="True" IsHitTestVisible="True" Click="CheckBox1_Click"/>
            <Button Content="button1" Width="100" Click="Button1_Click"/>
        </WrapPanel>
        <WrapPanel>
            <CheckBox IsChecked="True" IsHitTestVisible="false" Click="CheckBox2_Click"/>
            <Button Content="button2" Width="100"  Click="Button2_Click"/>
        </WrapPanel>
    </StackPanel>
</Grid>
private void CheckBox1_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("CheckBox1");
}
private void Button1_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Button1");
}
private void CheckBox2_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("CheckBox2");
}
private void Button2_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Button2");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Button");
}

在这里插入图片描述

三、应用场景

  • 基础的使用可以实现是否屏蔽指定控件的鼠标交互;
  • 实现渐变色的处理,如在控件上层加上有渐变效果的border,设置IsHitTestVisble为false,即不影响底层控件的鼠标事件,又能简单实现渐变效果
  • 实现图像的无遮挡显示,图像显示在最上层,设置IsHitTestVisble为false,这样图像能全部显示出来(放在底层会被上层的控件遮挡部分),底层控件也能正常控制;

总结

不积硅步,何以至千里

WPF HitTestCore HitTest 命中测试 命中 选中 拾取 ....这是一个关于 WPF HitTestCore方法的实用例子,源码是从WPF的源码里面反编译出来的,我使了大力气把重点内容剥离出来,做了这个例子.而且我现在的项目也在广泛应用。 主要功能是使一个很细的显示对象,十分方便的被拾取、选中,比如一条很细的自定义Line,自定义显示对象,这对于,经常写自定义显示对象的人是十分、非常、很、特别有用的。 ........ 立即下载

相关推荐

vivado运行时报错 license文件更新操作

vivado使用:SYNTHESIS->Run Synthesis 时报错 [Common 17-345] A valid license was not found for feature ‘Synthesis’ and/or device ‘xc7vx485t’. Please run the Vivado License Manager for assistance in determiningwhich features and devices are licensed for your sy

qq_44692266的博客 2万+

WPF 浅述IsHitTestVisible属性

WPF 浅述IsHitTestVisible属性

^@^lemon tea^@^ 829

【AI生成】市面上主流自组网厂家的技术及市场研究

经过对全球自组网产业技术特征与市场格局的系统分析,本文得出以下核心结论:技术演进呈现智能化与融合化双轨路径 当前自组网技术创新已突破传统组网架构局限,形成"协议优化-架构创新-场景适配"的递进式发展路径。国际厂商聚焦智能算法应用,如Silvus采用深度学习实现动态拓扑优化,传输时延较传统方案降低37%;国内企业则侧重异构网络融合,中国移动设计院提出的5G LAN架构使工业场景通信可靠性提升至99.99%。

qq_31310977的博客 1697

WPF 依赖属性 IsHitTestVisible

Eg: 如父元素有click事件, 子元素设置了IsHitTestVisible=false, 当鼠标单击这个子元素时,会触发父元素的单击事件。仅影响本身的元素(含内部包含的子元素),不影响父元素效果,且事件会传递到父元素。

Kaizen的博客 571

Nginx源码安装和基础配置

Nginx简介 nginx: 世界第二大web服务器软件,以高并发、低消耗著称,源自于俄罗斯,创建者 Igor(伊戈尔),2004年开源,最早以代理服务器的身份出现,2015成立nginx公司,2019年以6.7亿被F5 Networks公司收购。 代理服务器: 正向:squid 反向: squid:最古老的代理服务器 LVS: 优点: 1.抗负载能力强、是工作在网络4层之上仅作分发之用 2.配置性比较低,这是一个缺点也是一个优点,简单不易出错 3.工作稳定,抗负载能力很强,有完整的双机热备方案

hjyhjy0的博客 500

基于BQ24610的24V电池充电板

转自我的博客 本文的主要目的在于传播基本的阅读datasheet的能力,以及PCB设计需要注意的基本问题。 本次需要设计的是24V动力锂电池充电电路。 原理图设计 参考官方参考电路 为了快速设计电路,自然是参考官方参考电路,选择Typical Application。 做细微的参数调整 由于我们的需求是给24V的电池充电,所以需要稍微修改一下原理图,接下来需...

greedyhao的博客 1万+

WPF常用控件属性及实例

(1)内容标记<CheckBox><TextBlock>C#编程<Run Foreground="Green" FontWeight="Bold">语言</Run></TextBlock>(2)带图标的复选框<TextBlock>Java编程<Run FontWeight="Bold">语言</Run></TextBlock>

qq_40572871的博客 3222

Verilog使用inout信号的方法

在FPGA的设计过程中,有时候会遇到双向信号(既能作为输出,也能作为输入的信号叫双向信号)。比如,IIC总线中的SDA信号就是一个双向信号,QSPI Flash的四线操作的时候四根信号线均为双向信号。在Verilog中用关键字inout定义双向信号,这里总结一下双向信号的处理方法。  实际上,双向信号的本质是由一个三态门组成的,三态门...

qq_41687938的博客 1万+

WPF CheckBox IsHitTestVisible

<Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <CheckBox Grid.Column="0"

L.的博客 662

摄像头visio_最全面弱电智能VISIO图标集(百个),高大上方案就靠这个了

原标题:最全面弱电智能VISIO图标集(百个),高大上方案就靠这个了不会用Visio,Visio画拓扑画的很丑,怎么办?本期sin66小编免费分享一份最全面的弱电智能VISIO图标集(百个)给大家,以后画拓扑、做方案,直接高大上起来!需要本期资料直接看文末!!接下来我们一起看一下这些Visio图标大全:我们从下图可以看出前端设备主要是由枪机,筒机,无线摄像头,半球,球机,USB摄像头等构成,对于绘...

weixin_39644915的博客 1万+

i茅台最新任务python脚本

从固定的 `header_context` 生成HTTP请求头,并加入用户的`userId`、`MT-Token`等动态信息,以模仿真实的请求。- 发送预约请求,提交商品和门店的参数,如 `sessionId`、`shopId`、`itemId` 等。- 定时任务:通过 `cron` 表达式 `0 0 9/21 * * *`,表示每月的9日和21日的0点执行。- `login`:使用验证码进行登录,并返回 `token` 和 `userId`。- 获取北京时间当天0点的时间戳,作为预约请求的时间参数。

三维点云技术探索 983

WPF编程,使用IsHitTestVisible达到鼠标穿透的效果

IsHitTestVisible

君一席 1540

知识图谱构建中的数据清洗:AI原生应用高质量图谱的前提

数据清洗是知识图谱构建的核心前置环节,直接决定AI原生应用(如智能问答、个性化推荐、决策支持系统)的图谱质量与应用效能。本文以第一性原理为起点,系统解析数据清洗的理论框架、技术架构与工程实践,覆盖从多源异构数据的噪声检测到高质量知识三元组(实体-关系-实体)生成的全流程。通过层次化概念映射(专家→中级→入门)、数学形式化建模及工业级案例分析,揭示数据清洗在解决实体歧义、关系冲突、结构不一致等关键问题中的技术逻辑,并展望基于大模型的智能清洗范式演化。Completeness(完整性)

移动开发前沿的博客 404

AvaloniaUI中IsHitTestVisible与IsEnabled的交互行为解析

在AvaloniaUI框架中,控件的交互行为受到多个属性的共同影响,其中IsHitTestVisible和IsEnabled是两个关键属性。本文将深入分析这两个属性的交互机制,特别是在控件被禁用时的行为表现。 ## 核心问题 当开发者将控件的IsEnabled属性设置为false时,即使显式设置了IsHitTestVisible为true,控件仍然会变得对输入事件"透明"。这与WPF框架中的行...

gitblog_00385的博客 410

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

#678 – 通过IsHitTestVisible属性使界面元素不响应鼠标(Hide an Element from the Mouse with IsHitTestVisible Property)

通过设置IsHitTestVisible 属性值为false,可以使界面元素不响应鼠标,鼠标事件也不会被触发。 在下面的例子中有两个Label,我们将其中一个的IsHitTestVisible 属性设为false。 <Label Content="Mouse Sees Me" Background="AliceBlue" Margin="10" MouseMov

Milo的专栏 3261

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

值得注意的IsHitTestVisible

值得注意的IsHitTestVisible 原文:值得注意的IsHitTestVisible 这个属性我们平时可能并不怎么用.先来看下MSDN上的解释: 解释的非常专业,然而我并没有看懂. 说说我的理解吧:把这个属性设置为false,看起来没有变化,但操作上已经把他完全忽视了,不触发事件,可以直接点到它下面的东西. 这个属性能...

weixin_30443075的博客 675

WPF C# MVVM学习笔记

BasedOn 为特定类型定义的样式基于其他样式 特性(Attribute) 表示目标程序的一些状态 反射 可以在运行时查看特性信息 4.MemberInfo 获取有关成员属性的信息并提供对成员元数据的访问。 5.GetMembers() 返回当前type的所有公共成员(成员包括字段、属性、方法)。 6.BindingFlags 通俗的说就是为反射设置查找条件 7.MemberTypes ...

qq_40834200的博客 650

CheckBox IsHitTestVisible

<Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </...

weixin_34116110的博客 180

WPF界面中 鼠标点击按钮不能触发事件处理程序原因

WPF开发中鼠标点击按钮没有反应第一种可能第二种可能结果: 第一种可能 按钮被遮挡住了(可能性较小). 第二种可能 点击测试可见性属性设置为False,界面接收到了点击事件,但是并不响应; 应当设置 IsHitTestVisible=“True” 结果: 鼠标不在Button上面 鼠标在Button上面 ...

zld15380863253的博客 4271

WPF实现夜间模式

WPF实现夜间模式 原文:WPF实现夜间模式背景 项目中设计了一个黑色主题,稍加改正也可作为夜间模式,效果图如下: 原理 由于项目中存在地图,而地图完全是由位图组成,不能直接改变背景色,所以我在内容上面放置了一个黑色的Border作为遮罩。可通过更改Border的Opacity来更改黑色的程度,从伸手不见五指到隐约可见轮廓都可以。 ...

weixin_30617737的博客 211

IsHitTestVisible="False" 的功能

才发现 IsHitTestVisible="False" 可以使控件不接收任何屏幕触控的手势,而是使手势向下传递。 转载于:https://www.cnblogs.com/hebeiDGL/archive/2012/04/26/2471661.html

weixin_30615767的博客 1302

WPF透明控件的鼠标点击穿透

WPF有时候会遇到前面有一个较大的透明控件(Image或者Grid )

Code Will 8946

WPF解决按钮上被透明控件遮盖时无法点击问题

WPF解决按钮上被透明控件遮盖时无法点击问题 原文:WPF解决按钮上被透明控件遮盖时无法点击问题 IsHitTestVisible="False" 在控件上设置如上属性即可,即可让透明控件不触发点击效果 ...

weixin_30699955的博客 914

WPF 控件专题 Border控件详解

WPF 控件专题 Border控件详解

^@^lemon tea^@^ 7376
上一篇: 【C#学习笔记】【Abstract】
下一篇: 【WPF属性笔记】【DataTrigger】
Aflashstar
博客等级 码龄12年 205粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值