Usare ThemeDictionaries per creare ThemeResource personalizzate nelle Universal App

di Alessio Leoncini, in WinRT 8.1, WinRT,

Come abbiamo visto nello script #74, per migliorare il supporto dei temi nelle Windows Store e nelle Windows Phone app il framework si è arricchito di una nuova markup extension: ThemeResource. Questa markup extension è largamente usata negli Style e nei Template predefiniti del runtime e le relative risorse sono a disposizione per l'utilizzo nelle nostre applicazioni.

Oltre a quelle predefinite, abbiamo la possibilità di creare nostre risorse da associare a ciascun tema, in modo che il runtime le applichi in presenza quindi del tema scelto dall'utente.

Per questa operazione dobbiamo dichiarare le risorse in ThemeDictionaries di ResourceDictionary, in App o nelle Page in modo analogo a quanto facciamo con le tradizionali risorse:

<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">
      <SolidColorBrush x:Key="Background" Color="Red"/> 
       <x:String x:Key="BackButtonGlyph">&#xE071</x:String>
    </ResourceDictionary>
    <ResourceDictionary x:Key="Light">
      <SolidColorBrush x:Key="Background" Color="Black"/>
      <x:String x:Key="BackButtonGlyph">&#xE0A6</x:String>
    </ResourceDictionary>
    <ResourceDictionary x:Key="HighContrastBlack">
      <SolidColorBrush x:Key="Background" Color="Green"/>
      <x:String x:Key="BackButtonGlyph">&#xE071</x:String>
    </ResourceDictionary>
    <ResourceDictionary x:Key="HighContrastWhite">
      <SolidColorBrush x:Key="Background" Color="White"/>
      <x:String x:Key="BackButtonGlyph">&#xE0A6</x:String>
    </ResourceDictionary>
  </ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>

In ThemeDictionaries troviamo tante ResourceDictionary quante sono i temi supportati; in ciascun ResourceDictionary dobbiamo inserire le risorse, con la stessa Key, con il valore che vogliamo usare nel tema corrispondente.

Come possiamo vedere nello snippet, oltre ai colori possiamo inserire qualunque oggetto nelle risorse in modo che temi ad alto contrasto, ad esempio, possano addirittura avere altre icone, forme o dimensioni.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi