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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top