lunes, 5 de noviembre de 2007

Crear un degradado como color de fondo de un Form

Hoy os voy a mostrar como pintar el fondo de un formualario con un degradado sin usar el mdiContainer. Es algo facil de hacer y que queda muy vistoso en las aplicaciones.

Para el ejemplo podemos crear un formulario cualquiera, indicamos el namespace System.Drawing y escribimos el override para la función onPaint.

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
}

Esto se hace para que cada vez que se repinte el formulario (al maximizar por ejemplo) se mantenga el degradado.

Dentro de esta función tendremos que crear una variable Graphics la cual cogerá el control de crear los gráficos del control que vayamos a pintar, en este caso el formulario.

Graphics gr = this.CreateGraphics();

Lo siguiente es crear el area que vamos a rellenar, para el ejemplo todo el formulario, por lo que creamos un rectangulo en la posición 0,0 del formulario y del tamaño del mismo.

Rectangle rectangulo = new Rectangle(0, 0, this.With, this.Height);

Para crear el degradado hace falta un LinearGradientBrush. En el se indica el area que se va a rellenar, los colores del degradado y el tipo.

LinearGradientBrush brocha = new LinearGradientBrush(rectangulo, Color.SteelBlue, Color.LightSteelBlue, LinearGradientMode.Vertical);

En este modo le hemos dicho que vaya desde el color SteelBlue hasta el LightSteelBlue de arriba a abajo.

Ahora solo nos queda pintarlo con la siguiente función

gr.FillRectangle(brocha, rectangulo);

Y ya tenemos nuestro formulario con un degradado de fondo.

Espero que os sirva para hacer un poco mas amenos vuestros formularios ya que normalmente todas las aplicaciones son de un mismo color y cansa.

Si intentais combinar colores, el efecto resultante puede ser muy vistoso.

Hasta la proxima entrega.

4 comentarios:

Anónimo dijo...

summaries hotel belowour basket waits also variations stays indor file republish
semelokertes marchimundui

Ruben Andre Burgos dijo...

Disculpa pero cuando mencionas al final un gr.Fill... ese gr es el nombre del formulario?

Anónimo dijo...

Ruben, date cuenta de esta instrucción:
Graphics gr = this.CreateGraphics();

gr es una variable de tipo Graphics

Anónimo dijo...

Ami no me aparece la opcion de LinearGradientBrush y ya hice todo lo que dijiste solamente que sea con el SolidBrush mmmm :/