Tratamiento de plantillas con WPF

Tratamiento de plantillas con WPF para la creación de controles personalizados en WPF


Tratamiento de plantillas con WPF

Llevo unos meses curioseando con WPF y Silverlight y debo confesar que una de las cosas que más me atrae de estos sistemas es la posibilidad de personalización de los controles a base de plantillas.

Dado que vengo de Windows Forms y he desarrollado bastantes controles más o menos complicados, sé lo difícil que es crear controles con este sistema y me sorprende lo sencillo que resulta esta misma tarea en WPF.

De hecho, la imagen anterior (una aplicación que muestra una lista con imágenes y textos) es un simple ListBox al que se le ha cambiando la plantilla que indica su forma de dibujar.

Para ello, en la definición de la lista simplemente hay que indicar cómo deseamos que se realice el dibujo de los elementos:



	
		
			
				
					
					
				
				
					
					
				
				
					
				
				
				
			
			
		
	


Lo más importante se encuentra dentro del nodo DataTemplate donde se redefine la forma de dibujar los elementos de la lista: se introducen en un grid donde hay dos filas y dos columnas.

En la primera columna del grid (con un RowSpan de dos) se introduce la imagen y en la segunda columna se introducen los dos cuadros de texto.

Los orígenes de datos, se vinculan con los campos Image , Caption y Text de la clase Article :

/// 
///		Datos del artículo
/// 
public class Article
{
	public Article(int intID, string strCaption, string strText, string strImage)
	{ ID = intID;
		Caption = strCaption;
		Text = strText;
		Image = strImage;
	}

	/// 
	///		Código del artículo
	/// 
	public int ID { get; set; }
	
	/// 
	///		Título del artículo
	/// 
	public string Caption { get; set; }
	
	/// 
	///		Texto del artículo
	/// 
	public string Text { get; set; }
	
	/// 
	///		Imagen del usuario
	/// 
	public string Image { get; set; }
}

Para asociar el campo al control se utiliza esta sintaxis:


Puede descargar el código fuente de la aplicación en el vínculo anterior.

Páginas relacionadas