[wp7] Decoro Urbano: cambiare l’immagine di sfondo seguendo il tema (chiaro o scuro)

Tra le preferenze impostabili in un Windows Phone ci sono i temi, ovvero le possibili combinazioni di colore principale e di sfondo (chiaro o scuro). Gli stili di testo definiti in Windows Phone sono impostati in modo tale da adattare il colore del testo a contrasto del colore di sfondo impostato nel tema.

Se le nostre pagine (semplici, pivot o panorama) prevedono l’uso di un’immagine di sfondo, è essenziale che quest’ultima si conformi al tema chiaro o scuro impostato dall’utente:

Shot1  Shot2

In generale, il primo problema che si incontra è quello di sapere, dall’interno della nostra applicazione, qual è il tipo di tema in uso. Per tale motivo, come prima cosa creiamo un metodo che ritorni tale informazione.

Io l’ho messo nella mia classe Utils, una classe statica che contiene metodi d’utilità, una sorta di coltellino svizzero:

image

In questo modo, nel ViewModel posso usare una proprietà di tipo stringa che mi ritorna, a secondo del tema in uso, il path del file immagine corrispondente:

image

Purtroppo non è possibile utilizzare direttamente questa stringa nella proprietà Background della grid di layout della pagina, in quanto tale proprietà è di tipo Brush ed usando il data binding si perde la conversione implicita da stringa a ImageBrush. L’unico modo è quello di utilizzare un converter scritto da noi:

image

A questo punto possiamo scrivere sulla view:

image

Happy coding!

Auguri di buona Pasqua a tutti!

image

Quest’anno si festeggia in Metro Style!

«aprile»
domlunmarmergiovensab
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345