我正在创建一个无边框表单,我想为它添加自定义边框。但是,当我为表单添加背景时,它不能很好地显示,并且它不是透明的。
这就是我想用作我的边框:
当我为白色设置Form的透明度时,阴影消失了,我不知道该怎么做。
答案 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来绘制阴影,即使它是一个无边框窗口。它完全符合我的要求所以我选择了它 谢谢你的帮助!