C#无边框窗体的透明边框

标签 c# winforms forms

我正在创建无边框表单,我想为其添加自定义边框。但是,当我为表单添加背景时,它显示效果不佳,而且不透明。

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

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

最佳答案

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

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

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

[编辑]

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

关于C#无边框窗体的透明边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873157/

相关文章:

c# - Windows 窗体应用程序仍然是一个不错的选择吗?

c# - 作为 c++/cli 函数参数的通用结构在 VS 2015 中导致错误 CS0570,但在 VS2013 中没有

C#全屏,隐藏任务栏

php - Ajax:将表单恢复为初始值

javascript - ExtJS-3、Ext.grid.GridPanel、多行复选框 : how do I submit all checked items at once?

javascript - 如何禁用多部分表单上的下一个按钮?

c# - 什么决定了 NavigationCommands.BrowseBack 是否调用页面构造函数?

c# - 如何使用 List<T>() 隐藏私有(private)字段?

.net - Windows 窗体中的 MVP 和 IOC?

c# - 画一个矩形