winform和wpf如何实现鼠标穿透的效果

先看一下鼠标穿透的效果:

winform和wpf如何实现鼠标穿透的效果_第1张图片

可以看到Form1这个程序虽然遮在了桌面的上面,但是我们还可以在窗体上点击桌面上的必应词典和网易邮箱大师,好像这个叫“Form1”的窗口被“穿透”一样。

winform版本:

1、设置TransparencyKey=BackColor=control颜色,鼠标会穿透窗体  

this.painel.BackColor = System.Drawing.SystemColors.Control;   //这里的Painel是一个System.Windows.Forms.Panel的实例,表示一个面板。

this.TransparencyKey = System.Drawing.SystemColors.Control;  //查了一下这个颜色的含义,msdn上写的是“三维元素的表面颜色”。。。 什么意思?就当做是透明色吧
2、设置TransparencyKey=BackColor=红色、蓝色等其它颜色,在win7下测试鼠标不会穿透窗体,但是在XP下鼠标还是会穿透窗体
3、我用SetLayeredWindowAttributes这个API设置透明,什么系统下鼠标都会穿透窗体

wpf版本:

   IsHitTestVisible:声明此元素是否可以作为其呈现内容的某部分的命中测试结果返回。

你可能感兴趣的:(winform和wpf如何实现鼠标穿透的效果)