2010-11-30 15 views
13

Actualmente tengo un Formulario con todos los efectos deseados excepto uno. La forma actual consiste en un menú en la parte superior con un panel debajo que contiene etiquetas y cuadros de imagen. Cuando se lanza el formulario, el menú no es visible, solo se vuelve visible mientras el usuario presiona el botón 'Alt' y desaparece de la misma manera.C# - Transparente Form

El panel tendrá una imagen de fondo con un fondo transparente (.PNG). Esta imagen se convertirá en el diseño principal del formulario cuando establezca el estilo de borde en ninguno. Ahora el problema es que la forma todavía tiene el fondo blanco/grisáceo debajo del panel.

Ahora mi pregunta es cómo puedo hacer que el formulario sea transparente para que la imagen en el panel se convierta en el diseño principal en lugar de solo la imagen con el color de fondo de las formas debajo. No quiero usar la propiedad Opacity porque quiero que el panel sea visible al 100%.

Respuesta

25

Asumiendo WinForms.

Puede hacer esto, pero no puede hacer los bordes semitransparentes.

Pruebe esto.

En el formulario, establezca las siguientes propiedades:

BackColor = Color.Lime; 
TransparencyKey = Color.Lime; 

Esto hará que la forma transparente. A continuación, establezca la backgroundimage:

BackgroundImage = myImage: 

Las partes del backgroundimage que es también Color.Lime serán también obtener transparente.

Si también quiere deshacerse de las fronteras Forms, añada esta línea, así:

FormBorderStyle = FormBorderStyle.None; 
+0

Esto hizo el truco! Gracias por la respuesta rápida y la explicación detallada. ¡No puedo creer que sea así de simple! Gracias de nuevo. – Citroenfris

+0

Me alegro de poder ser de ayuda. Hice lo mismo una vez cuando hice una pantalla de bienvenida para una aplicación. –

3

Tenga cuidado cuando va a elegir color de fondo. Eligió un Color de Fondo para diferir del texto, las imágenes y el color de cualquier control, lo que significa elegir un color que nunca usará en su Forma, y ​​creo que la mejor opción es fucsia/lima. Para elegir un color de fondo, los códigos están a continuación:

this.BackColor = Color.Fuchsia; 

y luego hacer que el color a transparente mediante el uso de códigos que:

TransparencyKey = Color.Fuchsia; 
+1

¿Por qué elegir un color que nunca vas a usar? – nalply

+5

Porque si usa ese color en otro lugar, y lo ha configurado para que sea el 'TransparencyKey', también se hará transparente. Más o menos como si el hombre del clima vistiera un traje verde brillante frente a la pantalla verde. –

+0

yup coz vamos a tener un color transparente cuando uses el color que usas en forma, entonces ese texto o imagen también será transparente –