如何在C#windows窗体应用程序中制作半透明表单
我尝试了TransparentKey
,使其完全透明。并尝试Opacity
,但它会影响整个表单(带控件)。
我只希望表单部分是半透明的,而不是控件。
答案 0 :(得分:8)
您可以使用具有特定百分比的hatch brush,例如:
using System.Drawing.Drawing2D;
private void Form1_Paint(object sender, PaintEventArgs e)
{
var hb = new HatchBrush(HatchStyle.Percent50, this.TransparencyKey);
e.Graphics.FillRectangle(hb,this.DisplayRectangle);
}
答案 1 :(得分:1)
有一种解决方案可以为 控件 (不是表单)添加半透明度:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Apply opacity (0 to 255)
panel1.BackColor = Color.FromArgb(25, panel1.BackColor);
}
在Visual Studio中(仅在执行期间激活alpha)
在Windows 7上执行:
在旧的WIndows 2003服务器上执行:
答案 2 :(得分:1)
我发现了Hatch Brush怪诞,
而不是:
protected override void OnPaintBackground(PaintEventArgs e) { var hb = new HatchBrush(HatchStyle.Percent80, this.TransparencyKey); e.Graphics.FillRectangle(hb, this.DisplayRectangle); }
我用过:
protected override void OnPaintBackground(PaintEventArgs e) { var sb = new SolidBrush(Color.FromArgb(100, 100, 100, 100)); e.Graphics.FillRectangle(sb, this.DisplayRectangle); }