如何在表单上透明背景?是否有可能在C#?
提前致谢!
答案 0 :(得分:32)
您可以将表单的BackColor
设置为不常见的颜色(例如Color.Magenta
),然后将表单的TransparencyKey
属性设置为相同的颜色。然后,将FormBorderStyle
设置为None
。
当然,这只是快速简便的解决方案。控件的边缘很难看,你必须不断改变你添加的新控件的背景颜色(如果它们是按钮或类似的东西)和其他一系列问题。
这取决于你想要实现的目标。它是什么?如果你想制作一个小部件,那就有更好的方法。如果您需要圆角或自定义背景,有更好的方法。因此,如果TransparencyKey
不是您的想法,请提供更多信息。
答案 1 :(得分:14)
将以下内容放在表单的构造函数中:
public Form1()
{
this.TransparencyKey = Color.Turquoise;
this.BackColor = Color.Turquoise;
}
注意:此方法会阻止您点击表单。
答案 2 :(得分:4)
<强>更新强>:
How to: Give Your Control a Transparent Background
<强>已过时强>: How to: Create Transparent Windows Forms:
注意:由于透明表单仅在Windows 2000或Windows 2000中受支持 稍后,Windows Forms将会 在旧版本上运行时完全不透明 操作系统,例如Windows 98, 无论为此设置的值如何 不透明属性。
答案 3 :(得分:1)
在winform中获取透明背景的简单解决方案是覆盖OnPaintBackground方法,如下所示:
protected override void OnPaintBackground(PaintEventArgs e)
{
//empty implementation
}
(请注意,base.OnpaintBackground(e)已从函数中删除)
答案 4 :(得分:-1)
我正在使用此代码
this.TransparencyKey = (BackColor);
只需在construcror中的 InitializeComponent();
下添加此行来源:
http://mishelshaji.co.in/2017/creating-a-transparent-window-in-windows-form-application/