如何在winForms中绘制非客户区域透明? .Net 4

时间:2012-05-28 13:45:36

标签: winforms .net-4.0 transparency nonclient

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

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

1 个答案:

答案 0 :(得分:1)

获取窗口的透明部分需要硬件支持,称为分层的视频适配器功能。使用表单的TransparencyKey属性。将它设置为不寻常的颜色,如Color.Fuchsia。并使用该颜色绘制以使视频适配器省略像素。