C#透明边框为无边框形式

时间:2011-05-03 17:15:05

标签: c# winforms forms

我正在创建一个无边框表单,我想为它添加自定义边框。但是,当我为表单添加背景时,它不能很好地显示,并且它不是透明的。

这就是我想用作我的边框: Screenshot

当我为白色设置Form的透明度时,阴影消失了,我不知道该怎么做。

2 个答案:

答案 0 :(得分:6)

有一种方法可以使用半透明(alpha)图像作为WinForms中的表单背景,如本文所述:A lovely goldfish desktop pet (using alpha-PNG and GDI+)

它使用原生互操作将图像与桌面混合。

另外,请查看UpdateLayeredWindow function (User32.dll)上的pinvoke.net。还有一个如何使用它的例子。

[编辑]

pinvoke.net上还有Mike Swanson's blog article关于同一主题的链接。它使用与上述链接中描述的相同的代码,但它是一个VS项目,它完全符合OP的要求:带有半透明PNG图像作为背景的初始形式。

答案 1 :(得分:2)

好吧所以我有点作弊,但我所做的只是简单地重写CreateParams来绘制阴影,即使它是一个无边框窗口。它完全符合我的要求所以我选择了它  谢谢你的帮助!