Mostrar imagen sin parpadeo

19/10/2003 - 19:12 por Gandalf | Informe spam
Hola, estoy haciendo un clon del buscaminas y me encuentro con un molesto
parpadeo al dibujar. Estoy utilizando un mapa de bits oculto y en el evento
paint lo muestro:

private void PintarPanel(object sender, PaintEventArgs pea)

{

Graphics grfx=pea.Graphics;

grfx.DrawImage(tablero,0,0);

}


¿Alguna idea de como solucinarlo? Por cierto, aunque el tamaño de la imagen
sea muy pequeño a veces también se ve el parpadeo de la imagen.He intentado
también mostrar sólo la parte de la imagen que cambia pero sigue más o menos
igual.

Un Saludo y Gracias.

Preguntas similare

Leer las respuestas

#1 Tristan
20/10/2003 - 01:34 | Informe spam
Ummm, el problema creo es que deberás solo repintar aquellas partes que
realmente se hayan modificado. Entre los parámetros del PaintEventArgs
dispondrás del área que debe ser redibujada (ClipRectangle), aunque de esa
parte se encargará windows, aunque una ayudita no le viene mal, eligiendo el
área a repintar.

Por otro lado, si utilizas refresh, el control se borra y se pinta entero,
pero puedes usar Invalidate y pasar un rectángulo, o incluso una región, de
forma que solo se repintará el área que necesites.

Espero que te sea de ayuda.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#2 Gandalf
20/10/2003 - 13:03 | Informe spam
Perdona Tristan, creo que te conteste a tu dirección. :(
Respuesta Responder a este mensaje
#3 Tristan
20/10/2003 - 13:36 | Informe spam
Lo que ocurre es que mi dirección tiene un QUITAR así es
que no me ha llegado nada.

Lo siento.
Respuesta Responder a este mensaje
#4 Gandalf
20/10/2003 - 16:08 | Informe spam
Gracias Tristan, ya he probado a usar todo lo que me sugieres, pero sigue
apareciendo el molesto efecto.

Si uso ClipRectangle, efectivamente el efecto se reduce, pero no llega a
desaparecer de todo. Lo curioso es que aun con un bitmap relativamente
grande, 450x300, el efecto no siempre es visible.

Un Saludo.
Respuesta Responder a este mensaje
#5 Michael Giagnocavo [MVP]
20/10/2003 - 19:14 | Informe spam
Debes buscar sobre "Double buffer". La idea es que pintas sobre un graphico
fuera de pantalla (solo en memoria) y despues solo copias de memoria (el
buffer) hacia la pantalla.
-mike
MVP

"Gandalf" wrote in message
news:%
Hola, estoy haciendo un clon del buscaminas y me encuentro con un molesto
parpadeo al dibujar. Estoy utilizando un mapa de bits oculto y en el


evento
paint lo muestro:

private void PintarPanel(object sender, PaintEventArgs pea)

{

Graphics grfx=pea.Graphics;

grfx.DrawImage(tablero,0,0);

}


¿Alguna idea de como solucinarlo? Por cierto, aunque el tamaño de la


imagen
sea muy pequeño a veces también se ve el parpadeo de la imagen.He


intentado
también mostrar sólo la parte de la imagen que cambia pero sigue más o


menos
igual.

Un Saludo y Gracias.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida