我正在尝试创建一个应用程序,当它失去焦点时,使窗口(应用程序外部)透明。大多数事情(获得窗口ID,设置透明等)都很容易,除了一件事 - 如何挂钩窗户?

有帮助吗?

解决方案

您可以使用互操作。使用 SendMessage()功能发送窗口自定义消息。然后,窗口可以调用 SetLayeredWindowAttributes()您收到该消息以改变其透明度。

另一件事是你真的应该能够通过监听 WM_KILLFOCUS

编辑:

锁定C#中的Deactivate和Activated事件。

    private void Form1_Deactivate( object sender, EventArgs e )
    {
      this.Opacity = 0.5 ;
    }

    private void Form1_Activated( object sender, EventArgs e )
    {
      this.Opacity = 1.0 ;
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top