我想创建一个半透明的窗口(黑色,不透明)和一些控件(可能是一个+和-来增加/减少不透明)。
How can I make an "overlay" window that allows mouse clicks to pass through to windows below it, but still allow some controls to be clicked?
只有当窗口完全透明时,这才能在预期的时间内工作,添加一些不透明度会破坏叠加行为
如何在WPF中创建允许鼠标事件通过的半透明窗口
使用这种方法,我失去了控件的单击功能。
我如何合并这两个?我可以改变到其他框架,如winforms,winui,如果这将使事情更容易
1条答案
按热度按时间ljsrvy3e1#
根据WS_EX_TRANSPARENT explanation
WS_EX_TRANSPARENT使你的事件(如鼠标点击)通过你的窗口,以及其他的事情。不透明度是一个单独的概念,它指示窗口管理器在绘制表单时应用字母借贷。
所以,如果我理解你的问题是正确的,你想有一个
Transparent Window
,允许点击它下面的对象,但也有该窗口上的控件,也可以点击。为了做到这一点,你需要找到一个妥协。
因为当你应用
WS_EX_TRANSPARENT
时,它就不再是可点击的了,所以为了 * 回到 * 正常的Window,你需要以某种方式触发一个方法来重置WS_EX_TRANSPARENT
。我已经在.NET6和WPF中创建了一个示例,其中我在
PreviewKeyDown
事件上切换WS_EX_TRANSPARENT
。当然,当尝试在此示例上重置WS_EX_TRANSPARENT
时,必须关注Window。XAML
字符串
代码背后
型
的数据