- 定义在UIElement类,几乎所有WPF元素都有此属性,默认值True。
- 设置成False后,控件及其子控件都不能响应鼠标,如IsMouseOver,Click,MouseEnter,MouseLeftButtonUp等。
- 假设通过触发器设置当鼠标经过控件表面时,背景色变成红色,但是IsHitTestVisible被设置成false后,鼠标经过时,控件不会发生任何变化。
- IsHitTestVisible=False只是禁止响应鼠标输入,但不影响键盘输入,按Tab键和Enter键,控件仍旧可以获取焦点和触发事件。
- 如果父控件False,即使子控件设置成True,子控件仍旧不能响应鼠标。
- 不会影响控件的布局效果,仍旧会占用空间。
- 透过上层让下层响应鼠标。多个元素重叠放置到Grid,最上层控件完全遮住下层控件,但是如果把上层控件的IsHitTestVisible设置成False,点击鼠标,下层控件会响应。
将上层控件的IsEnabled设置成false是实现不了这种效果的,即使同时把上层控件设置成透明的,鼠标输入也会被上层控件先拦截住,到达不了下层,且IsEnable可能改变控件的外观,如按钮的背景色,但IsHitTestVisible不会改变控件的任何外观效果。
- 结合透明度,可以实现蒙版效果,上层蒙版能看到却点不到,可远观而不可亵玩焉。
- 相关路由事件
IsHitTestVisibleChanged
- 控件被渲染到屏幕,可以在控件模板中设置组成控件的IsHitTestVisible来合适设计控件可感受鼠标输入的区域,如下图的Hit test failed为鼠标非响应区域。