Pregunta

Probé el código de C # Kicks para un formulario de mezcla alfa . Esto funciona (tan pronto como elimine la propiedad TransparencyKey ); es decir, puedo usar la imagen de prueba alfa de PNG del W3C y ver otras ventanas debajo, pero hace que todos los controles de la forma sean invisibles. Presumiblemente, simplemente no están pintados, ya que OnPaint está anulado. Intenté llamar al OnPaint de la superclase:

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    UpdateFormDisplay()

    MyBase.OnPaint(e)
End Sub

, pero esto no cambió nada. (Llamar a MyBase.OnPaint primero tampoco hace ninguna diferencia).

Desafortunadamente, la mayoría de los artículos sobre formas con mezcla alfa se centran en pantallas de inicio puro sin ningún control, pero necesitamos un panel que primero muestre los campos de inicio de sesión y luego una barra de progreso.

Los controles, por cierto, no necesitan transparencia; Es solo en los bordes exteriores que la transparencia de PNG realmente importa. Así que fingir esto agregando otra forma además de todo esto (con los dos moviéndose siempre en tándem) podría ser suficiente, pero preferiría una solución más suave.

¿Fue útil?

Solución

Extraño, de todos modos, este artículo cubre una forma alfa transformada con controles:

http://www.codeproject.com/KB/miscctrl/AlphaForm.aspx

Otros consejos

Intente poner esto en su formulario ctor después de InitializeComponents ();

base.SetStyle (ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);

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