Windows Phone: Controlar el cambio de tema del móvil en nuestras aplicaciones

Uno de los aspectos más complejos de controlar cuando diseñamos/desarrollamos una aplicación para Windows Phone es el cambio de tema del móvil. Por defecto, el emulador aparece con el tema “Oscuro” o “Dark”, con lo que, los textos salen en color blanco. Si lo cambiamos al tema “Claro” o “Light”, los colores se invierten.

Dado que lo que se busca al desarrollar una aplicación para Windows Phone es conseguir muchas descargas, es importante darle un aspecto agradable, con colores, fondo de pantalla,…

Ahora bien, en mi caso, he sufrido el mismo problema con 3 aplicaciones diferentes.

 

El problema “pequeño” surge con que la imagen de fondo de las tres aplicaciones es oscuro (el de boplace es gradual de claro a oscuro) y, al cambiar el tema del móvil a “Claro”… ¡¡¡tacháaannn!!! El color de los textos se cambia a oscuro y no se puede leer nada y Microsoft no certificará nuestra aplicación para el MarketPlace (creedme que ni aunque sea uno sólo de los textos).

La solución “larga” y “tediosa” es asignar siempre un color a cada uno de los textos que hay en las aplicaciones, con lo que… si no lo vamos haciendo a medida que desarrollamos la aplicación, tendremos un largo de aburrimiento buscando, cambiando textos y probando de nuevo.

Hasta ahí, es asumible y se aprende a controlar el color siempre que se pone un control de texto o un estilo, pero… ahora llega el gran problema que me ha surgido en una nueva aplicación: ¿Qué ocurre cuando tenemos un campos de introducción de datos como TextBox? Pues ocurre que se hace muy muy complicado controlarlo y que tendremos que buscar alguien que le haya dado solución al problema y…. violà, encontré una solución en este artículo de WindowsPhoneGeek en el que se aplica un estilo a los TextBox para mantener siempre el mismo modo de visualización.

¿Qué os ha parecido? ¿Una buena solución y todo perfecto? Pues esto no ha acabado… Tengo un DatePicker y unos cuántos DigitLoopingSelector del Toolkit que siguen sin verse con el tema claro del móvil  Sad smile 

Mi primera reacción fue buscar de nuevo algún artículo en el que se resuelva el problema para alguno de estos controles pero, tras mucho buscar no encontré nada y empecé a barajar quitarle el fondo sólo a estas páginas o crear un fondo de color inverso, es decir, el mismo fondo pero en colores claros y controlar en código cuál de los dos mostrar en función del tema del móvil. Pero justo cuando ya no me quedaban esperanzas encontré la solución de todas las soluciones, que hacía innecesario el estilo aplicado al TextBox de antes y que nos hará felices a todos. Jeff Wilcox ha creado una solución que se puede encontrar en Nuget con la que podemos forzar a nuestra aplicación para que mantenga el tema que nosotros quedamos Oscuro o Claro, con lo que no tendremos que preocuparnos de si algún control de texto se nos ha quedado sin asignar color o si hemos añadido un control del toolkit y no podemos controlar su visualización en algún tema,… El ejemplo lo podéis encontrar aquí