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

时间:2014-05-09 05:40:13

标签: c# wpf

我已经尝试过寻找这个问题的答案,但我一直不幸试图找到它。

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

或者替代方案我也实现了:the transparent window gets no mouse events and they are all passed through

有没有办法将这两个结合起来,并且有一个透明的窗口,既可以解释鼠标事件,又可以将它们传递给它背后的任何东西? 我的最终目标是在我使用其他应用程序的同时在屏幕上单击鼠标时,在透明窗口上显示* ping *图形(与桌面分辨率的宽度/高度相同)

进一步编辑:

我的WPF窗口中有一个Canvas。它有MouseLeftButtonDown作为调用后面代码中的方法的元素。当我使用我链接的解决方案时,或者只是将Window和Canvas设置为Transparent或#00000000时,似乎没有调用此方法。

1 个答案:

答案 0 :(得分:1)

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

Microsoft为此here提供了非常直接的指南。