Condividi tramite


Supporto dei temi a contrasto elevato

Questo argomento confronta il supporto per i temi a contrasto elevato in Windows 8 con quello delle versioni precedenti di Windows e spiega come supportare i temi a contrasto elevato in un'applicazione Windows 8.

Include le sezioni seguenti.

Panoramica del supporto per i temi a contrasto elevato

Windows 7 e versioni precedenti supportano due modelli di tema, tra cui il modello classico di Windows legacy e gli stili di visualizzazione correnti. Il modello classico di Windows è stato mantenuto tramite Windows 7 principalmente per supportare i vari temi a contrasto elevato. Tuttavia, il modello classico di Windows presenta diversi svantaggi:

  • Nessun supporto per i temi che usano stili di visualizzazione, ad esempio Windows Aero. Gli utenti di temi a contrasto elevato devono usare l'interfaccia utente classica di Windows.
  • Nessun supporto per le funzionalità dell'interfaccia utente che si basano su Desktop Window Manager (DWM) da eseguire, ad esempio anteprime di anteprima e lente di ingrandimento a schermo intero introdotta in Windows 7.
  • Gli sviluppatori devono mantenere due percorsi di codice separati per supportare i due modelli di tema diversi.

In Windows 8 e versioni successive, le modifiche seguenti al modello di tema riguardano gli svantaggi precedenti:

  • Il modello di tema classico di Windows non è più supportato, consentendo agli sviluppatori di mantenere un solo percorso di codice per le applicazioni destinate solo a Windows 8.
  • Poiché gli stili di visualizzazione e DWM si trovano in Windows 8, gli utenti a contrasto elevato hanno accesso a funzionalità quali anteprime di anteprima e lente di ingrandimento a schermo intero.
  • Gli stili di visualizzazione supportano l'impostazione dei colori dei vari elementi dell'interfaccia utente, consentendo agli utenti a contrasto elevato di personalizzare l'interfaccia utente in base alle singole esigenze e preferenze.
  • Windows 8 include il supporto per la compatibilità per le applicazioni esistenti progettate per l'uso di temi a contrasto elevato basato sul modello di tema classico di Windows.

Supporto dei temi a contrasto elevato in Windows 8 e versioni successive

In Windows 8, poiché gli stili di visualizzazione sono in modalità a contrasto elevato, il supporto dei temi a contrasto elevato è semplice, purché tu abbia considerato le linee guida seguenti.

  • Dimensioni del carattere e dei controlli. Per assicurarsi che l'interfaccia utente sia accessibile agli utenti con disabilità, impostare le dimensioni del carattere in base alle impostazioni correnti del tema. Impostare le dimensioni dei controlli in modo che siano almeno le dimensioni predefinite.
  • Colori. Evitare di usare colori hardcoded. Usare invece i colori di sistema perché sono basati sul tema corrente. L'uso di colori personalizzati può interferire con ed eseguire l'override dei colori nei temi a contrasto elevato.
  • Manifesto dell'applicazione. Le applicazioni progettate per funzionare con i nuovi temi a contrasto elevato devono avere una sezione di compatibilità delle applicazioni definita nel manifesto che contiene i GUID di compatibilità di Windows 8. In caso contrario, Windows presuppone che l'applicazione sia progettata per una versione precedente di Windows ed esegue il rendering dell'interfaccia utente dell'applicazione simulando il modello di tema classico di Windows.

Aggiunta di una sezione di compatibilità al manifesto dell'applicazione

Un manifesto dell'applicazione è un file XML che descrive i requisiti per un'applicazione. La sezione compatibilità del manifesto identifica le versioni di Windows supportate dall'applicazione. I GUID seguenti vengono usati nella sezione compatibilità per identificare le varie versioni di Windows.

Versione GUID
Windows Vista {e2011457-1546-43c5-a5fe-008deee3d3f0}
Windows 7 {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
Windows 8 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}

 

La sezione compatibilità può specificare più versioni di Windows, ma ognuna deve essere contenuta all'interno del proprio <supportedOS/> tag. L'esempio seguente mostra un manifesto dell'applicazione che specifica Windows 7 e Windows 8 nella sezione compatibilità:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!--The ID below indicates application support for Windows 8 -->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>

            <!--The ID below indicates application support for Windows 7 -->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        </application>
    </compatibility>
</assembly>

Se un'applicazione non dispone di un manifesto di compatibilità, si presuppone che sia un'applicazione Windows Vista e non usi controlli a tema nell'area client quando è attivo un tema a contrasto elevato. Inoltre, il comportamento di alcune funzioni degli stili di visualizzazione è interessato. Ad esempio, IsThemeActive, IsCompositionActive e IsAppThemed restituiscono FAL edizione Standard, mentre OpenThemeData e OpenThemeDataEx restituiscono un handle NULL. Questo è per il supporto per la compatibilità, in modo che le applicazioni compilate prima di Windows 8 possano comunque eseguire il rendering dell'interfaccia utente nello stesso aspetto della modalità a contrasto elevato delle versioni precedenti di Windows in cui gli stili di visualizzazione non sono disponibili.

In Windows 8 l'applicazione riceve comunque i vantaggi della composizione desktop. Ciò significa, ad esempio, che le applicazioni di usabilità, ad esempio il lente di ingrandimento a schermo intero, non dipendono dallo stato del manifesto di una singola applicazione. L'applicazione usabilità continua a funzionare in modalità a contrasto elevato con un'applicazione che non si identifica come Compatibile con Windows 8 nel manifesto.

Le immagini seguenti mostrano una finestra di dialogo semplice a contrasto elevato in Windows 7.

hig contrast dialog box

Questa immagine mostra la stessa finestra di dialogo a contrasto elevato in Windows 8, ma con compatibilità di Windows 7 specificata nel manifesto dell'applicazione:

w8 high contrast dialog box

Questa immagine mostra la stessa finestra di dialogo a contrasto elevato in Windows 8, con Windows 8 specificato nel manifesto dell'applicazione:

w8 high contrast dialog with manifest

Rilevamento del contrasto elevato nelle versioni precedenti di Windows

Le applicazioni in esecuzione nelle versioni precedenti di Windows non hanno accesso ai nuovi temi a contrasto elevato. Se l'applicazione deve essere eseguita nelle versioni precedenti di , è necessario includere il supporto per il rendering dell'interfaccia utente in contrasto elevato nel modello di tema classico di Windows. L'applicazione può determinare se un tema a contrasto elevato è attivo chiamando la funzione SystemParametersInfo con il flag SPI_GETHIGHCONTRAST.

Enabling Visual Styles (Abilitazione degli stili di visualizzazione)

Stili di visualizzazione