Supporto dei temi a contrasto elevato (XAML)

Applies to Windows and Windows Phone

Stai cercando la versione di questo argomento relativa a HTML/JavaScript? Vedi Supporto dei temi a contrasto elevato (HTML).

Un'app di Windows Runtime scritta in C++, C# o Visual Basic supporta i temi a contrasto elevato per impostazione predefinita. Se un utente sceglie di usare un tema a contrasto elevato nelle impostazioni di sistema o negli strumenti di accessibilità, il framework usa automaticamente impostazioni di colore e stile che generano layout e rendering a contrasto elevato per i controlli e i componenti dell'interfaccia utente.

Il supporto predefinito si basa sull'uso dei temi predefiniti e dei modelli predefiniti. Questi temi e modelli fanno riferimento ai colori di sistema come a definizioni di risorse e le origini delle risorse cambiano automaticamente quando il sistema usa una modalità a contrasto elevato. Se tuttavia usi modelli, temi e stili personalizzati per un controllo, assicurati di non disabilitare il supporto predefinito per il contrasto elevato. Se usi una delle finestre di progettazione XAML per Microsoft Visual Studio per definire gli stili, viene generato un tema distinto a contrasto elevato insieme al tema primario ogni volta che viene definito un modello sensibilmente diverso da quello predefinito. I dizionari del tema distinto vanno nella raccolta ThemeDictionaries, una proprietà dedicata di un elemento ResourceDictionary.

Per altre info sui temi e i modelli di controllo, vedi Guida introduttiva: Modelli di controllo. È spesso molto utile esaminare i dizionari risorse e i temi XAML per controlli specifici, per vedere come sono costruiti i temi a seconda dei controlli e come fanno riferimento a risorse simili ma diverse per tutte le impostazioni di contrasto elevato possibili.

Come rilevare se è abilitato un tema a contrasto elevato

Un'app di Windows Runtime può usare membri della classe AccessibilitySettings per rilevare le impostazioni attuali per i temi a contrasto elevato. La proprietà HighContrast determina se attualmente è selezionato un tema a contrasto elevato. Se HighContrast è true, il passaggio successivo consiste nel verificare il valore della proprietà HighContrastScheme per ottenere il nome del tema a contrasto elevato in uso. "Bianco a contrasto elevato" e "Nero a contrasto elevato" sono in genere i valori di HighContrastScheme a cui il codice deve rispondere. Le chiavi ResourceDictionary definite in XAML non possono contenere spazi, quindi le chiavi di questi temi in un dizionario risorse sono in genere "HighContrastWhite" e "HighContrastBlack", rispettivamente. Dovresti inoltre prevedere una logica di fallback per un tema a contrasto elevato predefinito, nel caso in cui il valore corrisponda a un'altra stringa. L'esempio di XAML a contrasto elevato mostra una logica di questo tipo.

Nota  Verifica che il costruttore AccessibilitySettings venga chiamato da un ambito in cui l'app viene inizializzata e visualizza già i contenuti.

A partire da Windows 8.1, le app possono iniziare a usare i valori delle risorse a contrasto elevato anche mentre l'app è in esecuzione. Ciò è possibile solo se le risorse vengono richieste tramite l'estensione di markup ThemeResource nel codice XAML del modello o dello stile. Poiché tutti i i temi predefiniti (generic.xaml) usano questa tecnica basata sull'estensione di markupThemeResource, quando utilizzi i temi dei controlli predefiniti ottieni automaticamente questo comportamento. Se usi la tecnica basata sull'estensione di markup ThemeResource anche nei modelli e negli stili personalizzati, questo comportamento sarà disponibile anche per i controlli personalizzati e gli stili dei controlli personalizzati. Tuttavia, le app create per Windows 8 non ricaricano automaticamente le risorse mentre sono in esecuzione.

Comportamento di Windows 8

Windows 8 non supporta l'estensione di markup ThemeResource. Questa estensione è disponibile a partire da Windows 8.1. Windows 8 inoltre non supporta lo scambio dinamico delle risorse relative ai temi per un'app di Windows Runtime. È necessario riavviare l'app per rendere effettivo il cambiamento dei temi per gli stili e i modelli XAML. Non si tratta di un'esperienza utente positiva, perciò è consigliabile ricompilare le app in funzione di Windows 8.1 in modo che possano usare gli stili con ThemeResource e possano cambiare dinamicamente i temi in contemporanea con l'utente. Le app create per Windows 8 che vengono eseguite in Windows 8.1 continuano a usare il comportamento di Windows 8.

Argomenti correlati

Contrasto dell'interfaccia utente ed esempio di impostazioni
Esempio di accessibilità XAML
Esempio di XAML a contrasto elevato
AccessibilitySettings

 

 

Mostra:
© 2014 Microsoft