C# forma transparente no painel
Pergunta
Estou tentando criar uma forma semi-transparente que é exibida em um painel. Posso exibir o formulário no painel, mas a propriedade Opacity não funciona e o formulário não é transparente.
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();
}
Alguma idéia de como posso lidar com isso? Obrigado por suas respostas!
Solução
O WinForms suporta apenas a transparência parcial para formulários de nível superior. Se você deseja criar um aplicativo com elementos de interface do usuário parcialmente transparentes, você precisa usar o WPF ou manipular todo o desenho. Desculpe a ser o portador de más notícias.
Outras dicas
Seu formulário é adicionado como um controle infantil do painel1, que é filho da forma principal, que é de opacidade padrão = 1.
Para ver a opacidade no trabalho, tente o seguinte:
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();
}
Eu acho que você quer que o painel pareça semi-transparente, você deve usar outro método e trabalhar com o próprio formulário.