当我不设置面板的背景时,无法在其上获取鼠标事件。为什么会出现这种情况? 如果将背景设置为透明(默认为null),则可以在面板上获取鼠标事件。 背景为null和透明之间有什么区别?
当我不设置面板的背景时,无法在其上获取鼠标事件。为什么会出现这种情况? 如果将背景设置为透明(默认为null),则可以在面板上获取鼠标事件。 背景为null和透明之间有什么区别?
Background=null
时,在渲染时不会向MILCore发出任何绘图命令,并且在命中测试中不计算控件的整个区域。Background=Transparent
时,它会在渲染时发出普通的绘图命令,并且在命中测试中控制整个区域。
Brushes.Transparent
实际上是一种普通的画刷,其alpha(透明度)通道设置为零。因此,在大多数情况下它表现得像一个普通的颜色。如果背景是一种普通的颜色,则会检测到鼠标点击事件,因此对于Brushes.Transparent
也会检测到。Brushes.Transparent
并通过完全省略绘图命令来进行优化。例如,这种情况在窗口透明度与操作系统的交互方面就会发生:操作系统不知道使用Brushes.Transparent
绘制的任何区域都是应用程序的一部分,因此单击它不起作用。这是通过为此目的特别处理Brushes.Transparent
来完成的。