viernes, 7 de agosto de 2009

Imagen en movimiento al pasar el cursor

A petición de un lector del blog he creado un nuevo artículo, lo que me ha llevado a retomar un blog que tenía olvidado.

La pregunta es la siguiente:

"Como podria hacer para que una imagen al poner el cursor sobre ella, esta se mueva... un ejemplo seria el inicio del windows live. Disculpe por mi ignorancia de antemano muchas gracias."

La solución es bastante facil de implementar. Se trata de tener dos imágenes, una estática en formato jpeg y la otra animada en formato gif.

Añadimos un picturebox al form y en los recursos del proyecto añadimos las dos imágenes. En la propiedad image del picturebox ponemos por defecto la imágen estática.

Ahora solo falta poner los eventos para que cambie la imagen.

private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
pictureBox1.Image = Properties.Resources.image;
}

private void pictureBox1_MouseLeave(object sender, EventArgs e)
{

pictureBox1.Image = Properties.Resources.imagestatic;
}

Espero que sirva la respuesta, para cualquier problema no dudeis en consultarlo.

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.

lunes, 22 de octubre de 2007

Acceso al código de una página web

Vamos a empezar con el primer tip del blog. Supongo que alguna vez habreis necesitado leer el código fuente de alguna página web para poder sacar algo de ella mediante programación.

Gracias a .Net esta acción es muy facil y tienes muchas utilidades. Lo primero que necesitamos es un WebClient para abrir la página.

WebClient client = new WebClient();

A continuación creamos un stream para almacenar la página. Para rellenar el stream usamos el WebClient.

Stream data= cliente.OpenRead(url); // Donde url es la dirección de la web

Luego simplemente debemos leer todas las líneas con un stream reader y cada vez que leemos una línea hacemos lo que queramos con ella.

StreamReader reader = new StreamReader(data);

Declaramos una cadena para pasar cada línea leida y leemos líneas hasta llegar al final.

strig str = "";

str = reader.ReadLine();

while (str != null)
{
//Hacemos lo que queramos con la línea leida
str = reader.ReadLine();
}

Ya hemos leído todo el código de la página web por lo que solo nos queda cerrar el stream y ya hemos terminado. Dejarme comentarios si os parecen tips muy básicos, malos o si os gustan xD. Así sabré por donde ir para que os sea lo mas útil posible.

data.Close();

Aquí os dejo una función entera para que se vea más claro, espero que os haya servido de ayuda.

private void ReadWeb(string url)
{
WebClient client = new WebClient();
Stream data= client.OpenRead(url);
StreamReader reader = new StreamReader(data);
string str = "";

str = reader.ReadLine();

while (str != null)
{
//Hacemos lo que queramos con la línea leida
str = reader.ReadLine();
}
data.Close();
}

jueves, 18 de octubre de 2007

Sugerencias

En las respuestas de este post podeis ir poniendo temas que os gustaría que tratara. Para que os sea más comodo hacerlo, en la parte derecha de la web teneis un acceso directo para hacer vuestras sugerencias.

Presentación

Hola a todos. Aquí empiezo un blog dedicado al lenguaje de programación C#. Cada cierto tiempo iré poniendo consejos para este lenguaje que os sean útiles cuando programeis.