我已经尝试过寻找这个问题的答案,但我一直不幸试图找到它。
从这里的类似问题我已经能够使我的透明窗口接收鼠标事件,但是后面运行的其他应用程序没有得到任何鼠标事件(将窗口的背景设置为# 01000000(大多是透明的))。
或者替代方案我也实现了:the transparent window gets no mouse events and they are all passed through。
有没有办法将这两个结合起来,并且有一个透明的窗口,既可以解释鼠标事件,又可以将它们传递给它背后的任何东西? 我的最终目标是在我使用其他应用程序的同时在屏幕上单击鼠标时,在透明窗口上显示* ping *图形(与桌面分辨率的宽度/高度相同)
进一步编辑:
我的WPF窗口中有一个Canvas。它有MouseLeftButtonDown作为调用后面代码中的方法的元素。当我使用我链接的解决方案时,或者只是将Window和Canvas设置为Transparent或#00000000时,似乎没有调用此方法。
答案 0 :(得分:1)
我认为更好的方法是使用windows hook来捕获全局鼠标事件,并让您的应用程序放弃鼠标命中测试。据我所知,Windows框架中不能直接使用Windows钩子,但它们是PInvokable。
Microsoft为此here提供了非常直接的指南。