如何在winForms透明中绘制非客户端区域。净4

如何在winForms透明中绘制非客户端区域。净4,winforms,.net-4.0,transparency,nonclient,Winforms,.net 4.0,Transparency,Nonclient,我正在开发一个自定义表单,我希望非客户端区域是透明的。im通过消息编号“0x85”处理非客户端区域绘画,这是我迄今为止尝试的: 使用颜色“color.Transparent”->将非客户区绘制为黑色。如果我使用的是红色、黑色或绿色的图像,它工作得非常完美,但透明=黑色 创建一个表单大小的透明图像,并使用方法“myGraphics.DrawImage(“img.png”)”。背景仍然是黑色的。如果我使用了红色、黑色或绿色的图像,它也可以完美地工作 不画任何东西(希望我能保持透明)。。。不起作用

我正在开发一个自定义表单,我希望非客户端区域是透明的。im通过消息编号“0x85”处理非客户端区域绘画,这是我迄今为止尝试的:

  • 使用颜色“color.Transparent”->将非客户区绘制为黑色。如果我使用的是红色、黑色或绿色的图像,它工作得非常完美,但透明=黑色
  • 创建一个表单大小的透明图像,并使用方法“myGraphics.DrawImage(“img.png”)”。背景仍然是黑色的。如果我使用了红色、黑色或绿色的图像,它也可以完美地工作
  • 不画任何东西(希望我能保持透明)。。。不起作用

    • 要使窗口部分透明,需要硬件支持,这是一种称为分层的视频适配器功能。使用窗体的TransparencyKey属性。将其设置为不寻常的颜色,如color.Fuchsia。并使用该颜色绘制,以使视频适配器忽略像素。

      使窗口部分透明需要硬件支持,这是一种称为分层的视频适配器功能。使用窗体的TransparencyKey属性。将其设置为不寻常的颜色,如color.Fuchsia。并使用该颜色绘制,以使视频适配器忽略像素