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

ptr*_*x01 5 c# forms winforms

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

这就是我想用作我的边框: 截图

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

Gro*_*roo 6

有一种方法可以使用半透明(alpha)图像作为WinForms中的表单背景,如本文所述:一个可爱的金鱼桌面宠物(使用alpha-PNG和GDI +).

它使用本机互操作将图像与桌面混合.

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

[编辑]

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


ptr*_*x01 2

好吧,我作弊了一点,但我所做的只是覆盖 CreateParams 来绘制阴影,即使它是一个无边框窗口。它正是我想要的,所以我就这么做了。
感谢您的帮助!