Modulo trasparente C # nel pannello
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!
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.