Domanda

Sto cercando di creare una forma semitrasparente che viene visualizzata in un pannello. posso visualizzare il modulo nel pannello ma la proprietà dell'opacità non funziona e il modulo non è trasparente.

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

qualche idea su come posso gestirlo? Grazie per le tue risposte!

È stato utile?

Soluzione

Winforms supporta solo la trasparenza parziale per i moduli di livello superiore. Se si desidera creare un'applicazione con elementi dell'interfaccia utente parzialmente trasparenti, è necessario utilizzare WPF o gestire autonomamente tutto il disegno. Mi dispiace essere portatore di cattive notizie.

Altri suggerimenti

Il tuo modulo viene aggiunto come controllo figlio di panel1 che è figlio del modulo principale che è di default Opacity = 1.

Per vedere Opacity al lavoro, prova questo:

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

Immagino che desideri che il pannello appaia semitrasparente, devi usare un altro metodo e lavorare con il modulo stesso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top