2012-05-28 52 views
1

即时通讯开发一个自定义窗体,我希望非客户区域是透明的。通过消息号“0x85”处理非客户区绘画,这是我迄今尝试过的:如何在winForms中绘制非客户区域透明? .Net 4

  • 使用“Color.Transparent”颜色绘制 - >非客户区被涂成黑色。如果我使用了红色或黑色或绿色的图像,它完美地工作,但透明=黑色
  • 创建一个透明的图像大小的图像,并使用方法“myGraphics.DrawImage(”img.png“)” 。背景仍然是黑色的。如果我用的红色或黑色或绿色的图像,它完美的作品也...
  • 没有画什么(希望我会留透明)...没有工作的

回答

1

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

+0

谢谢!有效! – Leonardo