martes, 20 de abril de 2010

Extender Propiedades de un Control en WPF

Continuando con el trabajo sobre WPF, he tenido la necesidad de extender las propiedades de los User Controls que he ido creando, con el objetivo de que estos se ajustaran todavía más a mis necesidades.

Para ello, tenemos varias opciones en la siguiente web, con código para poder ver algunos ejemplos:

http://blogs.msdn.com/wpfsdk/archive/2009/09/16/wpf-designer-sample-code-is-posted.aspx

De entre todas ellas, me decidí por la que se llama: "Custom Dialog Property Value Editor", que consiste en añadir una propiedad nueva a tu control y crear un diálogo para controlarla



Aunque existe un ejemplo que podemos descargarnos en la web que he puesto antes, he preferido hacer un pequeño tutorial para los novatos como yo, con la finalidad de hacerlo más comprensible, puesto que al menos a mí me ha parecido algo complicado crear las propiedades desde cero.

jueves, 15 de abril de 2010

Mini Serie de los Pilares de la Tierra



Llevaba un tiempo por la red la información sobre una posible adaptación de la obra maestra de Ken Follet, los Pilares de la Tierra, obra que desde aquí os recomiendo encarecidamente.

Hoy tenemos buenas noticias para los amantes del libro, y es que ya tenemos el primer trailer de la mini serie de 8 capitulos que ha realizado la cadena Starz.

Por si acaso no habéis leido el libro, no voy a dar ningún detalle acerca del argumento para no destripar nada, asi que me voy a limitar a postear la reseña acerca de la novela de la wikipedia :D

"Los pilares de la tierra es una novela histórica del autor británico Ken Follett ambientada en Inglaterra en la Edad Media, en concreto en el siglo XII, durante un periodo de guerra civil conocido como la Anarquía inglesa, entre el hundimiento del White Ship y el asesinato del arzobispo Thomas Becket. Sin embargo, también se recrea un viaje de peregrinación a Santiago de Compostela a través de Francia y España.
La novela describe el desarrollo de la arquitectura gótica a partir de su precursora, la arquitectura románica y las vicisitudes del priorato de Kingsbridge en contraste con el telón de fondo de acontecimientos históricos que se estaban produciendo en ese momento. A pesar de que Kingsbridge es el nombre de una localidad inglesa real, el Kingsbridge al que se hace referencia en la novela es, en realidad, un emplazamiento ficticio representativo del típico pueblo inglés en el que se establecían mercados en la época."


Dato Curioso:

Al principio se iba a hacer una película sobre el libro, aunque el autor se negó a realizarla debido a la densidad del argumento, si lo habéis leido sabréis el motivo xD, por lo que al final el proyecto acabó siendo una mini serie para televisión.

Sin más dilación, os dejo con el trailer:

Preview


Cómo se hizo



Un saludo

MtCantero

jueves, 8 de abril de 2010

Diferencias entre un User Control y un Custom Control, WPF 4.0

Estos días, estoy investigando bastante el tema de WPF, haciendo la migración en mi cabeza desde Windows Forms a esta nueva tecnología de Interfaz Gráfica. Ahora mismo, tengo varias vías de investigación, debido a que estoy utilizando esta tecnología para un proyecto de la universidad y para un proyecto profesional.

Precisamente en este último, me ha surgido la necesidad de crear un Control, y me he encontrado con que en WPF existen 2 tipos de "Custom Control", uno llamado User Control y otro Custom Control, a simple vista, la diferencia entre ellos no es muy grande, únicamente que cuando abres el User control te permite editar un fichero XAML y cuando es un Custom, tienes simplemente el código C#.

Por lo tanto me puse a buscar por internet las diferencias entre estos dos tipos y este es el resultado.


 

User Control:




Cuando seleccionamos el User control en el menú nuevo de Visual Studio, lo que se nos genera es la pantalla de arriba, en la que como vemos tenemos un fichero XAML, editable como cualquier aplicación normal WPF. Como podéis ver en la imagen, yo he añadido un Combobox, con el propósito de hacer un LookupCombo.

Al encontrarme con esta problemática, decidí buscar información por internet, y encontré un blog donde nos explica la diferencia de una manera fácil y sencilla,

A continuación voy a hacer un resumen de lo que el autor dice acerca de los User Controls:

  • El User Control, se puede entender como la composición de otros controles para formar uno solo, de hecho en muchos libros, se compara la creación de un User Control con la de una aplicación normal de WPF, esto es debido a que en términos de programación es lo mismo.
  • Como podemos ver en la imagen, tenemos el XAML y un archivo .cs, como cualquier aplicación, el archivo .cs extiende el comportamiento del código XAML, añade propiedades, etc...
  • Es el control más fácil de crear, debido a que el XAML encapsula todo, los controles, los estilos, los templates, animaciones, etc…
  • Propiedades importantes de un User Control:
    • Su propósito es el de aunar controles en uno solo.
    • No soporta la modificación de su tema, es decir, no puede tener uno distinto del de la aplicación.
    • Por lo tanto, es mejor utilizarlo solo en una aplicación, en caso de que necesitemos cambiar el estilo


 

Custom Control:




En esta ocasión, seleccionamos el Custom Control, como podemos ver, a simple vista la diferencia radica en la falta de código XAML, por lo tanto necesitamos crear los controles que vayamos a utilizar mediante C#.

Al igual que con el User Control, voy a hacer un resumen de la información encontrada acerca de los Custom Controls:

  • Este "control", te proporciona una mayor capacidad de maniobra, a la hora de modificar propiedades y de conseguir que tu control haga lo que tú quieras. En el custom control, deberemos añadir los controles mediante código, para luego extender su funcionalidad.
  • Por otra parte también es necesario que definir el tema del control, que se guardará como ResourceDictionary en la carpeta Themes/Generic.xaml
  • La creación de un Custom Control, es una tarea mucho más laboriosa, pero que nos permite hacer mucho más, por lo tanto es la mejor opción si ya llevas un tiempo con WPF
  • Propiedades importantes del Custom Control:
    • Su propósito es mejorar los controles existentes.
    • Permite el uso de temas diferentes al de la aplicación.
    • Es la mejor opción para las compañías third parties, debido a la segunda opción.


 

¿Cuál utilizar?

Esta pregunta no tiene una respuesta clara, puesto que depende de muchas cosas, en especial de 2:

  • La habilidad con WPF.
  • Lo que se necesite.

Para alguien que sea nuevo en la tecnología, lo más fácil será utilizar un User Control, pero en cambio puede ser que no le sirva para lo que quiera hacer y por lo tanto se tenga que poner a investigar acerca de la creación de los Custom Control.

En cambio para alguien que sea experto en WPF, no tiene que olvidar que aunque a simple vista pueda parecer más potente utilizar un Custom Control, el User Control es una alternativa muy buena si la funcionalidad requerida es la unión de 2 controles existentes. Si algo lo puedes hacer fácil, para que te vas a complicar xD.

La respuesta a esta pregunta como en muchas otras está en las necesidades de cada uno, así que os lo dejo a vuestra elección.


 

Un saludo


 

MtCantero


 



Bibliografía:
http://wangmo.wordpress.com/2007/09/28/user-controls-vs-custom-controls/