【发布时间】:2010-12-08 12:57:40
【问题描述】:
我想让我的窗口窗体透明,因此删除了边框、控件和所有内容,只留下窗体框,然后我尝试将 BackColor 和 TransparencyKey 设置为透明但它没有成功,因为 BackColor 不接受透明颜色。在四处搜索后,我在 msdn 上找到了这个:
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.Transparent;
this.TransparencyKey = BackColor;
不幸的是,它也不起作用。我仍然得到灰色或任何其他选定的颜色背景。
我想要做的就是让窗体透明,这样我就可以使用一个背景图像,就好像它是我的窗体一样。
我在这里搜索了很多关于不透明度的主题,这不是我想要的,还看到了一些关于我正在尝试但尚未找到答案的方法。
希望任何人都可以照亮我的道路。
更新:
问题解决后删除图片
【问题讨论】:
-
你能澄清一下你想做什么吗?我不明白你想用背景图片实现什么。
-
我想以一种简单的方式制作自己的自定义应用程序窗口,因此我不使用 winforms 默认窗口,而是尝试使其透明以使用我的背景图像。
-
您的意思是背景图像将绘制在您的窗口后面的某个其他窗口上吗?我不明白为什么你不能只覆盖 OnPaint 并在那里绘制背景图像......
-
@Ran 我已经更新了一个例子,绿色部分是我想要完全透明的窗口窗体的剩余部分。
-
我明白了。所以还有2个问题...:)您是否将图像文件设置为Form的BackgroundImage属性?图片的格式是什么?
标签: c# winforms background transparent