September 2009 - Artículos - Blog de Oskar Alvarez

September 2009 - Artículos

Como detectar que se ha modificado los items de un ItemsControl

Después de unos días en PortAventura gritando como un loco en el Furius Baco (teneis que probarla) os cuento un problema que me surgió, tenia que detectar cuando había sido añadido o eliminado items de un ItemsControl, en este caso una ListBox, estos items podían ser añadidos y eliminados sin mi control solo cambiaba la colección. Supuse que seria bastante fácil, que estaría el  evento CollectionChanged pero cuando me puse a mirar me lleve la decepción que no estaba, no me creía que no estuviese...
Publicado por Oskar Alvarez | 5 comment(s)
Archivado en:

Como interceptar las acciones de Copy/Paste

Esto surgió en los foros de MSDN y la verdad es que me pareció interesante ya que puede haber situaciones en las que no queramos que el usuario copie datos para pegarlos en otra aplicación e incluso obligarle a que introduzca los datos por teclado en vez de que haga un paste. Me puse a investigar y en la clase System.Windows.DataObject me encontré una serie de métodos estáticos que resolvían este problema   DataObject.AddPastingHandler(dependencyObject, handler);   DataObject.RemovePastingHandler...
Publicado por Oskar Alvarez | 2 comment(s)
Archivado en:

Como saber lo que quiere decir XamlParseException

Hay veces que te vuelves loco cuando te da la excepción XamlParseException , te aparece tan ricamente sin darte ninguna aproximación de donde se ha producido el error, esto lo podemos solucionar sacando el log del error a la ventana de output para ver cual ha sido realmente el problema, por ejemplo     Para activar esta característica solo tenemos que meter 3 líneas de código en nuestra aplicación   public Window1() { PresentationTraceSources.Refresh(); PresentationTraceSources.MarkupSource...
Publicado por Oskar Alvarez | 1 comment(s)
Archivado en:

Snoop una utilidad para hacer debug visual en WPF

Una de las cosas que deseaba en WPF cuando empecé aplicaciones complejas es poder realizar debug visuales y con esto me refiero a que cuando ejecuto la aplicación y la interfaz tiene muchos elementos a veces no aparecen como uno cree que ha diseñado y desearía una herramienta en la que pudiéramos “debugear” el árbol visual y aquí encontré Snoop una herramienta muy valiosa en mis desarrollos. Podéis bajarla desde aquí...
Publicado por Oskar Alvarez | 3 comment(s)
Archivado en: ,

SplashScreen en WPF

Con la llegada del SP1 del FrameWork 3.5 nos facilito la posibilidad de hacer SplashScreenen nuestras aplicaciones. Esto nos permite crear una imagen que será mostrada cuando arranque la aplicación mientras la aplicación se carga. Es muy sencillo de realizar, añadimos la imagen que queremos a nuestro proyecto y en la propiedad BuildAction elegimos SplashScreen                                                      ...
Publicado por Oskar Alvarez | 2 comment(s)
Archivado en:

ListView con color Alternativo

Una de las respuestas que he dado en los foros de MSDN es como crear un estilo para el control ListView que generase controles alternativos en cada fila, imitando los estilos de los grid antiguos. A mi no es algo que me guste especialmente pero aquí va la solución   < Window.Resources > < Style x : Key ="alternatingListViewItemStyle" TargetType ="{ x : Type ListViewItem }"> < Style.Triggers > < Trigger Property ="ItemsControl.AlternationIndex"...
Publicado por Oskar Alvarez | 1 comment(s)
Archivado en:

Utilizando JavaScript con el WebBrowser de WPF (2/2)

En el anterior Post vimos como llamar desde nuestra página web a metodos de nuestra aplicación WPF, en este vamos a ver como podemos inyectar JavaScript, Css nuevos y llamar al JavaScript que hemos inyectado. Para el ejemplo vamos a utilizar este Javascript que nos resalta de amarillo en la pagina Web  las palabras que pasemos por parámetros. Para todos los pasos lo que se va a utilizar es el objeto DOM de la pagina, vamos a ver como podemos manejarlo de cualquier manera ya que tenemos acceso...
Publicado por Oskar Alvarez | 2 comment(s)
Archivado en:

Utilizando JavaScript con el WebBrowser de WPF (1/2)

Con la llegada del FrameWork 3.5 SP1 apareció un nuevo control denominado WebBrowser que al igual que su hermano de WinForms es un ActiveX de IE que nos permite tener un navegador dentro de nuestras aplicaciones WPF. Al igual que su hermano de WinForms este es muy sencillo a la hora de utilizarlo, tiene el método Navigate donde indicamos la URL que queremos mostrar, ningún misterio hasta ahora. Las funciones soportadas por este control son: NavigateToString NavigateToStream Navigate GoBack GoForward...
Publicado por Oskar Alvarez | 1 comment(s)
Archivado en:

Problema con el control Expander dentro de un ListBox

En los foros surgio la pregunta porque el control Expander dentro de una ListBox no lanzaba el evento SelectionChanged de la listbox para saber cuando se pulsaba, la razón es que el evento del control Expander es un evento enrutado que tiene el comportamiento de Buble con lo que no sube hasta la ListBox. Esta es la respuesta pero aprovechando la circunstancia primero voy a explicar que es el control Expander y luego como solucionar el problema. El control Expander es paecido al GroupBox pero...
Publicado por Oskar Alvarez | 1 comment(s)
Archivado en:

Restricciones de los controles WinForms en aplicaciones de WPF

Hemos visto en los anteriores posts como utilizar controles WinForms en aplicaciones WPF y al revés, pero al introducir controles WinForms en nuestras aplicaciones WPF debemos de tener en cuenta ciertos aspectos. Windows Forms tiene unas limitaciones que WPF no tiene, por ejemplo al incluirlos en el control WindowsFormsHost no significa que podamos rotarlo, este control no lo soporta y no lo hace.   Windows Forms tiene un hwnd por cada form, en cambio WPF utiliza el mismo hwnd para todo su contenido...
Publicado por Oskar Alvarez | 1 comment(s)
Archivado en:

Controles WPF en WinForms

En el anterior Post vimos como utilizar controles WinForms en WPF, ahora vamos a ver como utilizar controles WPF en aplicaciones Winforms, de esta manera podemos enriquecer nuestras antiguas aplicaciones WinForms e incluso poder realizar una migración paso a paso. Al igual que en WPF en WinForms debemos de añadir una referencia a un assembly, en este caso a WindowsFormIntegration Para añadir el control de WPF elegiremos Add New item en nuestro proyecto, eligiendo un control de...
Publicado por Oskar Alvarez | 9 comment(s)
Archivado en:

Controles Winform en WPF

De vuelta de vacaciones, empezamos de nuevo a escribir sobre WPF, como siempre que me voy de vacaciones vuelvo con cientos de correos, llamadas telefónicas y problemas, parecen que te castigan si te vas de vacaciones y que cuando vuelves intentan hacerte lo mas dura posible la vuelta, intentaremos seguir escribiendo un post diario pero me temo que este mes va a ser un poco difícil. Una de las características que al principio no le di mucha importancia pero que luego me ha resultado útil es la de...
Publicado por Oskar Alvarez | 3 comment(s)
Archivado en: