¿Necesitas ayuda con tu Pocket PC? Son las 06:02 y hoy es viernes, 30 de julio de 2010
 
Logotipo de Todo Pocket PC
Acceder a la portada de Todo Pocket PCLas respuestas a las preguntas más comunes sobre Pocket PCRevisamos lo último en hardware y software para Pocket PCAccede a nuestra colección de software para tu Pocket PCTemas de escritorio para tu Pocket PCGalería de imagenes de Pocket PC y otros dispositivos¿tienes una duda sobre el funcionamiento de tu Pocket PC? Accede a nuestro foro.
Contenidos
Tienda de Hardware de TPPC
Canal AvantGo
Versión Pocket PC
Recursos Pocket PC
Wikipedia para Pocket PC
Buscador TPPC para Firefox
Zonas Temáticas
Zona Handheld PC
Contactar
Colabora con Todo Pocket PC
Envía una noticia - Submit news
Contactar
Tienda de merchandising de Todo Pocket PC
Cómo utilizar el foro
Registrarse en el foro
Normas de uso del foro de Todo Pocket PC
  #1  
Old 25 de marzo de 2005, 19:25
xphere
coding powa!
 
Desde: Barcelona
Mensajes: 195
Equipación: HTC S200 || Acer n10 + SD 512 + Globalsat BC307
Sistema operativo: Windows Mobile 5.0
xphere está desconectado
Por defecto Evitar el efecto flicker en un imagebutton (C#)

Hola a todos, escribo este post para explicar como evitar el efecto flicker.
El efecto flicker es ese que aparece a veces al pulsar un botón, y que parece que el boton parpadea o algo asi. Pues bien, la solucion es simple:
- Dibujarlo todo en el OnPaintBackground en vez de OnPaint, además, hay que quitar la línea base.OnPaintBackground(...) que te añade el propio VisualStudio.

Por ejemplo:
Código:
using System;
using System.Drawing;
using System.Windows.Forms;

public class ImageButton:Control
{
	private Image UpImg;
	private Image DownImg;
	private bool pressed;
	private bool release;

	public ImageButton (bool autorelease):base()
	{
		release = autorelease;
		this.pressed = false;
	}
	public bool Pressed
	{
		get{return pressed;}
		set
		{
			this.pressed = value;
			Invalidate();
		}
	}
	public Image UpImage
	{
		get{return this.UpImg;}
		set{this.UpImg = value;}
	}
	public Image DownImage
	{
		get{return this.DownImg;}
		set{this.DownImg = value;}
	}

	protected override void OnMouseDown(MouseEventArgs e)
	{
		this.pressed = !this.pressed;
		base.OnMouseDown (e);
		this.Invalidate();
	}
	protected override void OnMouseUp(MouseEventArgs e)
	{
		if (release)
		{
			this.pressed = false;
			this.Invalidate();
		}
		base.OnMouseUp (e);
	}

	protected override void OnPaintBackground(PaintEventArgs e)
	{
		if (this.pressed==true && this.DownImg!=null)
			e.Graphics.DrawImage(this.DownImg,0,0);
		else
			e.Graphics.DrawImage(this.UpImg,0,0);
	}
}
Para el ejemplo de arriba, para utilizar el boton en question seria así:
Código:
public	ImageButton		ib_boton;
(...)

ib_boton= new ImageButton(true);
ib_boton.Bounds = new Rectangle(6,81,21,17); // Aqui lo ponemos donde queremos (en pixels)
ib_boton.UpImage = new Bitmap (asm.GetManifestResourceStream("upimage.bmp"));
ib_boton.DownImage	= new Bitmap (asm.GetManifestResourceStream("downimage.bmp"));
Ala, yastá, simple pero efectivo

PD: Es que queda muy feo el efecto flicker... :P
Respuesta con cita textual
Respuesta

Comparte este hilo en:


Actualmente viendo este tema: 1 (0 usuario(s) registrado(s) y 1 usuario(s) no registrado(s))
 
Utilidades del tema
Visualización del tema

Pautas del foro
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Activado
Los smilies están Activado
El código [IMG] está Activado
El código HTML está Activado

Cambiar al foro

Temas similares que te pueden interesar
Tema Inició el tema Foro Respuestas Último mensaje
Evitar autopistas de peaje con el TomTom (sistema manual) MacPac Software de navegación en carretera y PNA 1 23 de febrero de 2005 16:42
Como puedo evitar que la Ipaq H3630 o la H3835 se prenda con los botones de abajo Juan Rodriguez HP 3 17 de octubre de 2002 23:13


Zona horaria GMT +2. Son ahora las 06:02.


Utilizamos el motor de foros vBulletin 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
© Todo Pocket PC 2002-2010 Año II número 3053. La Web útil para tu Pocket PC Portada  Foro