如何创建一个透明窗口,既捕获鼠标事件,又允许它们通过



我试着寻找这个问题的答案,但我一直很不幸地试图找到它。

从类似的问题在这里,我已经能够使我的透明窗口接收鼠标事件,但随后在它后面运行的其他应用程序不得到任何鼠标事件(设置窗口的背景为#01000000(大部分透明))。

或者我已经实现的替代方案:透明窗口没有鼠标事件,它们都通过。

是否有一种方法来结合这2,并有一个透明的窗口,既解释鼠标事件,并将它们传递给它背后的任何东西?我的最终目标是在透明窗口上显示一个*ping*图形(这是我桌面分辨率的相同宽度/高度),任何时候鼠标被点击在屏幕上,而我正在使用其他应用程序。

进一步编辑:

我有一个画布在我的WPF窗口。它将MouseLeftButtonDown作为一个元素,在后台代码中调用一个方法。当我使用我链接的解决方案时,或者当我简单地将窗口和画布设置为透明或#00000000时,这个方法似乎没有被调用。

我认为更好的方法是使用windows hook来捕获全局鼠标事件,并简单地让应用程序丢弃鼠标命中测试。据我所知,Windows钩子在。net框架中不是直接可用的,但是它们是可PInvokable的。

Microsoft在这里提供了一个非常简单的指南

最新更新