一尘不染

单击透明的Visual C#窗口表单?

c#

我制作了一个面板并将其设置为填充屏幕,现在我可以看到其下方的窗口,但希望将其单击,这意味着他们可以单击文件或通过透明度查看另一个对象的工具提示。

RE:这可能太明显了,但是您是否尝试通过右键单击并选择“ Send to Back”将面板发送到背面?

我的意思是像台式机或Firefox,而不是项目中的东西。


阅读 204

收藏
2020-05-19

共1个答案

一尘不染

创建透明的顶层表单非常容易。只需使其填充屏幕或所需区域,然后将其定义为具有相同值的TransparenyKey颜色和BackColor即可。

让它忽略鼠标非常简单,您只需要重写WndProc并告诉WM_HITTEST所有鼠标位置都将被视为透明。因此,导致鼠标与窗口下方发生的任何事情进行交互。像这样

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == (int)WM_NCHITTEST)
            m.Result = (IntPtr)HTTRANSPARENT;
        else
            base.WndProc(ref m);
    }
2020-05-19