winform和wpf如何实现鼠标穿透的效果
先看一下鼠标穿透的效果:
可以看到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:声明此元素是否可以作为其呈现内容的某部分的命中测试结果返回。