полупрозрачная форма, но непрозрачные элементы управления в C # - PullRequest
7 голосов
/ 05 марта 2011

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

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

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

Ответы [ 3 ]

8 голосов
/ 05 марта 2011

Вы можете использовать штриховку с определенным процентом, например:

    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 голос
/ 21 ноября 2017

Я нашел 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);
}
1 голос
/ 18 августа 2015

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

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

...