用C#开发Winform窗体,要将背景设置成透明需要点小技巧,用下面方法实现的透明不仅能显示其下一层的图案,而且能让鼠标穿越过去,成为真正的透明化。
注释掉的三行代码是实现透明效果的另外两个办法,
但第一个方法根本不起作用,
因为Windows Form所用“调色板”是“系统调色板”,
即SystemColors,仅当SystemColors里面包含Transparent这个颜色才能显示出透明背景效果。
第二个设置Opacity的方法是将整个ClientWindow上的所有东西全部透明化,而不仅仅是背景,
如果设置为0,则是完全透明,但整个程序该显示的部分也都透明了,意味着程序变得找不着了。
namespace DesktopClock
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//方法1(不可行)
//SetStyle(ControlStyles.SupportsTransparentBackColor, true);
//SetStyle(ControlStyles.SupportsTransparentBackColor, true);
//this.BackColor=Color.Transparent;
//方法2(不可行)
//this.Opacity = 0.5;
//this.Opacity = 0.5;
//方法3(可行)
this.BackColor = Color.White;
this.TransparencyKey = Color.White;
}
}
}
this.TransparencyKey = Color.White;
}
}
}