Rendu des contrôles avec les styles visuels

.NET Framework prend en charge les contrôles de rendu et d’autres éléments d’interface utilisateur Windows à l’aide de styles visuels dans les systèmes d’exploitation qui les prennent en charge. Cette rubrique décrit les différents niveaux de prise en charge dans .NET Framework pour le rendu des contrôles et d’autres éléments d’interface utilisateur avec le style visuel actuel du système d’exploitation.

Classes de rendu pour les contrôles courants

Le rendu d’un contrôle fait référence au dessin de l’interface utilisateur d’un contrôle. L’espace de noms System.Windows.Forms fournit la classe ControlPaint pour le rendu de certains contrôles Windows Forms courants. Cependant, cette classe dessine des contrôles dans le style Windows classique, ce qui peut rendre difficile de maintenir cohérente une expérience de l’interface utilisateur quand des contrôles personnalisés sont dessinés dans des applications où les styles visuels sont activés.

.NET Framework 2.0 inclut des classes dans l’espace System.Windows.Forms de noms qui affichent les parties et les états des contrôles communs avec des styles visuels. Chacune de ces classes inclut des méthodes static permettant de dessiner le contrôle ou des parties du contrôle dans un état particulier avec le style visuel actuel du système d’exploitation.

Certaines de ces classes sont conçues pour dessiner le contrôle concerné, que les styles visuels soient ou non disponibles. Si les styles visuels sont activés, les membres de la classe dessinent le contrôle concerné avec des styles visuels ; si les styles visuels sont désactivés, les membres de la classe dessinent le contrôle dans le style Windows classique. Ces classes incluent :

Les autres classes peuvent dessiner seulement le contrôle concerné quand des styles visuels sont disponibles, et leurs membres génèrent une exception si les styles visuels sont désactivés. Ces classes incluent :

Pour plus d’informations sur l’utilisation de ces classes pour dessiner un contrôle, consultez How to: Use a Control Rendering Class.

Élément de style visuel et classes de rendu

L’espace de noms System.Windows.Forms.VisualStyles inclut des classes qui peuvent être utilisées pour dessiner et obtenir des informations sur un contrôle ou un élément d’interface utilisateur qui est pris en charge par les styles visuels. Les contrôles pris en charge incluent des contrôles courants qui ont une classe de rendu dans l’espace de noms System.Windows.Forms (voir la section précédente), ainsi que d’autres contrôles, comme des contrôles d’onglet et des contrôles rebar. Les autres éléments d’interface utilisateur pris en charge incluent les parties du menu Démarrer , la barre des tâches et la zone non cliente des fenêtres.

Les classes principales de l’espace de noms System.Windows.Forms.VisualStyles sont VisualStyleElement et VisualStyleRenderer. VisualStyleElement est une classe de base pour identifier tout contrôle ou élément d’interface utilisateur pris en charge par les styles visuels. En plus de VisualStyleElement lui-même, l’espace de noms System.Windows.Forms.VisualStyles inclut de nombreuses classes imbriquées de VisualStyleElement avec des propriétés static qui retournent un VisualStyleElement pour chaque état d’un contrôle, partie de contrôle ou autre élément d’interface pris en charge par des styles visuels.

VisualStyleRenderer fournit les méthodes qui dessinent et obtiennent des informations sur chaque VisualStyleElement défini par le style visuel actuel du système d’exploitation. Les informations qui peuvent être récupérées sur un élément sont sa taille par défaut, son type d’arrière-plan et ses définitions de couleur. VisualStyleRenderer encapsule les fonctionnalités de l’API des styles visuels (UxTheme) de la partie Windows Shell du Kit de développement Windows Platform SDK. Pour plus d’informations, consultez Activation des styles visuels.

Pour plus d’informations sur l’utilisation VisualStyleRenderer et VisualStyleElement, voir How to : Render a Visual Style Element.

Activation des styles visuels

Pour activer des styles visuels pour une application écrite pour .NET Framework version 1.0, les programmeurs doivent inclure un manifeste d’application qui spécifie que ComCtl32.dll version 6 ou ultérieure sera utilisé pour dessiner des contrôles. Les applications créées avec .NET Framework version 1.1 ou ultérieure peuvent utiliser la Application.EnableVisualStyles méthode de la Application classe.

Vérification de la prise en charge des styles visuels

La propriété RenderWithVisualStyles de la classe Application indique si l’application actuelle dessine des contrôles avec les styles visuels. Quand vous dessinez un contrôle personnalisé, vous pouvez vérifier la valeur de RenderWithVisualStyles pour déterminer si vous devez rendre votre contrôle avec ou sans styles visuels. Le tableau suivant répertorie les quatre conditions qui doivent exister pour que RenderWithVisualStyles retourne true.

Condition Notes
Le système d’exploitation prend en charge les styles visuels. Pour vérifier cette condition séparément, utilisez la propriété IsSupportedByOS de la classe VisualStyleInformation .
L’utilisateur a activé des styles visuels dans le système d’exploitation. Pour vérifier cette condition séparément, utilisez la propriété IsEnabledByUser de la classe VisualStyleInformation .
Les styles visuels sont activés dans l’application. Les styles visuels peuvent être activés dans une application en appelant la méthode Application.EnableVisualStyles ou un utilisant un manifeste d’application qui spécifie que ComCtl32.dll version 6 ou ultérieure doit être utilisé pour dessiner les contrôles.
Les styles visuels sont utilisés pour dessiner la zone cliente des fenêtres d’application. Pour vérifier cette condition séparément, utilisez la propriété VisualStyleState de la classe Application, et vérifiez qu’elle a la valeur VisualStyleState.ClientAreaEnabledVisualStyleState.ClientAndNonClientAreasEnabled.

Pour déterminer quand un utilisateur active ou désactive les styles visuels ou bascule d’un style visuel à un autre, recherchez la valeur de UserPreferenceCategory.VisualStyle dans les gestionnaires pour les événements SystemEvents.UserPreferenceChanging ou SystemEvents.UserPreferenceChanged .

Important

Si vous voulez utiliser VisualStyleRenderer pour restituer un contrôle ou un élément d’interface utilisateur quand l’utilisateur active ou change les styles visuels, faites cela lors du traitement de l’événement UserPreferenceChanged et non pas de l’événement UserPreferenceChanging . Une exception est générée si vous utilisez la classe VisualStyleRenderer lors du traitement de UserPreferenceChanging.

Voir aussi