Condividi tramite


Rendering di controlli con stili di visualizzazione

.NET Framework fornisce il supporto per i controlli di rendering e altri elementi dell'interfaccia utente di Windows usando gli stili di visualizzazione nei sistemi operativi che li supportano. In questo argomento vengono illustrati i diversi livelli di supporto in .NET Framework per il rendering dei controlli e di altri elementi dell'interfaccia utente con lo stile di visualizzazione corrente del sistema operativo.

Classi di rendering per controlli comuni

Il rendering di un controllo fa riferimento al disegno dell'interfaccia utente di un controllo. Lo spazio dei nomi System.Windows.Forms fornisce la classe ControlPaint per il rendering di alcuni comuni controlli di Windows Forms. Tuttavia, questa classe disegna controlli nello stile classico di Windows, che può rendere difficile mantenere un'esperienza coerente dell'interfaccia utente quando si disegnano controlli personalizzati nelle applicazioni con stili di visualizzazione abilitati.

.NET Framework 2.0 include classi nello spazio dei nomi System.Windows.Forms che eseguono il rendering degli stati e delle parti dei controlli comuni con stili visivi. Ognuna di queste classi include static metodi per disegnare il controllo o le parti del controllo in uno stato specifico con lo stile di visualizzazione corrente del sistema operativo.

Alcune di queste classi sono progettate per disegnare il controllo correlato indipendentemente dal fatto che gli stili di visualizzazione siano disponibili. Se gli stili di visualizzazione sono abilitati, i membri della classe disegnano il controllo correlato con gli stili di visualizzazione; se gli stili di visualizzazione sono disabilitati, i membri della classe disegnano il controllo nello stile di Windows classico. Queste classi includono:

Altre classi possono disegnare il controllo correlato solo quando sono disponibili gli stili di visualizzazione e i relativi membri genereranno un'eccezione se gli stili di visualizzazione sono disabilitati. Queste classi includono:

Per altre informazioni sull'uso di queste classi per disegnare un controllo, vedere Procedura: Usare una classe di rendering dei controlli.

Elementi e classi di visual style e rendering

Lo spazio dei nomi System.Windows.Forms.VisualStyles include classi che possono essere usate per disegnare e ottenere informazioni su qualsiasi controllo o elemento dell'interfaccia utente supportato dagli stili di visualizzazione. I controlli supportati includono controlli comuni che dispongono di una classe di rendering nello spazio dei nomi System.Windows.Forms (vedere la sezione precedente), nonché altri controlli, come ad esempio i controlli a schede e i controlli barra degli strumenti. Altri elementi dell'interfaccia utente supportati includono le parti del menu Start, la barra delle applicazioni e l'area non client delle finestre.

Le classi principali dello spazio dei nomi System.Windows.Forms.VisualStyles sono VisualStyleElement e VisualStyleRenderer. VisualStyleElement è una classe di base per identificare qualsiasi controllo o elemento dell'interfaccia utente supportato dagli stili di visualizzazione. Oltre a VisualStyleElement stesso, lo spazio dei nomi System.Windows.Forms.VisualStyles include molte classi annidate di VisualStyleElement con proprietà static che restituiscono un VisualStyleElement per ogni stato di un controllo, di una parte di controllo o di un altro elemento dell'interfaccia utente supportato dagli stili di visualizzazione.

VisualStyleRenderer fornisce i metodi che disegnano e ottengono informazioni su ogni VisualStyleElement definito dallo stile di visualizzazione corrente del sistema operativo. Le informazioni che possono essere recuperate su un elemento includono le relative dimensioni predefinite, il tipo di sfondo e le definizioni dei colori. VisualStyleRenderer esegue il wrapping delle funzionalità dell'API degli stili di visualizzazione (UxTheme) dalla parte shell di Windows di Windows Platform SDK. Per altre informazioni, vedere Abilitazione degli stili di visualizzazione.

Per altre informazioni sull'uso di VisualStyleRenderer e VisualStyleElement, vedere Procedura: Eseguire il rendering di un elemento dello stile di visualizzazione.

Abilitazione degli stili di visualizzazione

Per abilitare gli stili di visualizzazione per un'applicazione scritta per .NET Framework versione 1.0, i programmatori devono includere un manifesto dell'applicazione che specifica che ComCtl32.dll versione 6 o successiva verrà usato per disegnare i controlli. Le applicazioni compilate con .NET Framework versione 1.1 o successiva possono usare il metodo Application.EnableVisualStyles della classe Application.

Verifica del supporto degli stili di visualizzazione

La proprietà RenderWithVisualStyles della classe Application indica se l'applicazione corrente sta disegnando controlli con stili visivi. Quando si disegna un controllo personalizzato, è possibile controllare il valore di RenderWithVisualStyles per determinare se eseguire il rendering del controllo con o senza stili di visualizzazione. Nella tabella seguente sono elencate le quattro condizioni che devono esistere per RenderWithVisualStyles restituire true.

Condizione Note
Il sistema operativo supporta gli stili di visualizzazione. Per verificare questa condizione separatamente, utilizzare la proprietà IsSupportedByOS della classe VisualStyleInformation.
L'utente ha abilitato gli stili di visualizzazione nel sistema operativo. Per verificare questa condizione separatamente, utilizzare la proprietà IsEnabledByUser della classe VisualStyleInformation.
Gli stili di visualizzazione sono abilitati nell'applicazione. Gli stili di visualizzazione possono essere abilitati in un'applicazione chiamando il metodo Application.EnableVisualStyles o usando un manifesto dell'applicazione che specifica che ComCtl32.dll versione 6 o successiva verrà usato per disegnare i controlli.
Gli stili di visualizzazione vengono usati per disegnare l'area client delle finestre dell'applicazione. Per verificare questa condizione separatamente, utilizzare la proprietà VisualStyleState della classe Application e verificare che abbia il valore VisualStyleState.ClientAreaEnabled o VisualStyleState.ClientAndNonClientAreasEnabled.

Per determinare quando un utente abilita o disabilita gli stili di visualizzazione oppure passa da uno stile di visualizzazione a un altro, verificare la presenza del valore UserPreferenceCategory.VisualStyle nei gestori per gli eventi SystemEvents.UserPreferenceChanging o SystemEvents.UserPreferenceChanged.

Importante

Se si desidera usare VisualStyleRenderer per eseguire il rendering di un controllo o di un elemento dell'interfaccia utente quando l'utente abilita o cambia stili di visualizzazione, assicurarsi di eseguire questa operazione quando si gestisce l'evento UserPreferenceChanged anziché l'evento UserPreferenceChanging. Se si usa la classe VisualStyleRenderer durante la gestione di UserPreferenceChanging, verrà generata un'eccezione.

Vedere anche

  • di disegno e rendering personalizzati