C# transparente Form in Panel
Frage
Ich versuche, eine halbtransparente Form zu erstellen, die in einem Panel angezeigt wird. Ich kann das Formular im Panel anzeigen, aber die Eigenschaft der Opazität funktioniert nicht und das Formular ist nicht transparent.
private void button1_Click(object sender, EventArgs e)
{
Form fr = new Form();
fr.FormBorderStyle = FormBorderStyle.None;
fr.BackColor = Color.Black;
fr.TopLevel = false;
fr.Opacity = 0.5;
this.panel1.Controls.Add(fr);
fr.Show();
}
Irgendwelche Ideen, wie ich damit umgehen kann? Vielen Dank für Ihre Antworten!
Lösung
Winforms unterstützt nur teilweise Transparenz für Formulare auf höchster Ebene. Wenn Sie eine Anwendung mit teilweise transparenten UI-Elementen erstellen möchten, müssen Sie entweder WPF verwenden oder alle Zeichnen selbst verarbeiten. Tut mir leid, der Träger schlechter Nachrichten zu sein.
Andere Tipps
Ihr Formular wird als untergeordnete Kontrolle von Panel1 hinzugefügt, bei dem es sich um ein Kind der Hauptformular handelt, die von Standardeinheit ist = 1.
Um die Opazität bei der Arbeit zu sehen, versuchen Sie Folgendes:
private void button1_Click(object sender, EventArgs e)
{
Form fr = new Form();
fr.FormBorderStyle = FormBorderStyle.None;
fr.BackColor = Color.Blue;
fr.TopLevel = false;
//fr.Opacity = 0.5;
this.Opacity = 0.5; // add this
this.panel1.Controls.Add(fr);
fr.Show();
}
Ich denke, Sie möchten, dass das Panel halbtransparent aussieht. Sie müssen eine andere Methode anwenden und mit dem Formular selbst arbeiten.