我正在创建一个无边框的表单,想要添加自定义边框。然而,当我为表单添加背景时,它并没有显示得很好,而且不是透明的。
这是我想用作边框的内容:
当我将表单的透明度设置为白色时,阴影消失了,我不知道该怎么办。
这是我想用作边框的内容:
![Screenshot](https://istack.dev59.com/NVcHx.webp)
在WinForms中,有一种使用半透明(alpha)图像作为表单背景的方法,如此文章所述:可爱的金鱼桌宠(使用alpha-PNG和GDI+)。
它使用本地交互与桌面混合图像。
还可以参考UpdateLayeredWindow function (User32.dll)在pinvoke.net上的示例,了解如何使用它。
[编辑]
在pinvoke.net上也有一个链接,链接到Mike Swanson 的博客文章,介绍相同的主题。它使用上述链接中描述的相同代码,但这是一个VS项目,可以实现OP想要的效果:使用半透明PNG图像作为背景的启动窗体。
TransparencyKey
只定义了一个颜色作为透明颜色,类似于 GIF 图像支持透明度。OP 想要实现的是对 alpha 通道的完全支持,允许在 PNG 文件中进行精细的不透明度渐变。 - vgru好吧,我有点作弊了,但我所做的只是重写CreateParams以绘制阴影,即使这是一个无边框窗口。它完全符合我的要求,所以我选择了它。
感谢所有的帮助!