Pregunta

Estoy intentando crear un formulario semitransparente que se muestra en un panel. Puedo mostrar el formulario en el panel, pero la propiedad de opacidad no funciona y el formulario no es 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();
}

¿Alguna idea de cómo puedo manejar eso? Gracias por sus respuestas!

¿Fue útil?

Solución

Winforms solo admite transparencia parcial para formularios de nivel superior. Si desea crear una aplicación con elementos de la interfaz de usuario parcialmente transparentes, debe usar WPF o manejar todo el dibujo usted mismo. Lamento ser el portador de malas noticias.

Otros consejos

Su formulario se agrega como un control secundario de panel1, que es secundario del formulario principal que es de opacidad predeterminada = 1.

Para ver la opacidad en el trabajo, intente esto:

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

Supongo que quieres que el panel se vea semitransparente, tienes que usar otro método y trabajar con el formulario en sí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top