полупрозрачная форма, но непрозрачные элементы управления в C#

Как сделать полупрозрачную форму в приложении c# windows form

Я пробовал TransparentKey Что делает его полностью прозрачным. и попробовал!--1--> но это влияет на всю форму (с элементами управления).

Я хочу, чтобы только часть формы была полупрозрачной,но не контролировала.

3 ответов


вы можете использовать люк кисти С определенным процентом, например:

    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);
    }

Я нашел щетку Люка гротескной,

вместо:

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);
}

существует решение, которое добавляет полупрозрачность к управления (не форма):

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        // Apply opacity (0 to 255)
        panel1.BackColor = Color.FromArgb(25, panel1.BackColor);
    }

в visual Studio: (Альфа активируется только во время выполнения)

enter image description here

выполняется в Windows 7:

enter image description here

выполняется на старом сервере WIndows 2003 :

enter image description here

источник:https://stackoverflow.com/a/4464161/1529139