Contrôles de rendu avec des 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. Toutefois, cette classe dessine des contrôles dans le style Windows classique, ce qui peut compliquer la maintenance d’une expérience d’interface utilisateur cohérente lors du dessin de contrôles personnalisés dans des applications avec des styles visuels activés.
.NET Framework 2.0 inclut des classes dans l’espace de noms System.Windows.Forms qui affichent les parties et les états des contrôles communs avec des styles visuels. Chacune de ces classes inclut des méthodes static
pour dessiner le contrôle ou les 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 associé indépendamment de la disponibilité des styles visuels. Si les styles visuels sont activés, les membres de la classe dessinent le contrôle associé 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 sont les suivantes :
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 sont les suivantes :
Pour plus d’informations sur l’utilisation de ces classes pour dessiner un contrôle, consultez Guide pratique pour utiliser une classe de rendu de contrôle.
Éléments Visual Style 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 n’importe quel contrôle ou élément d’interface utilisateur 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, tels que les contrôles tabulation et les contrôles de barre d’outils. D’autres éléments d’interface utilisateur pris en charge incluent les parties du menu Démarrer
Les classes principales de l’espace de noms System.Windows.Forms.VisualStyles sont VisualStyleElement et VisualStyleRenderer. VisualStyleElement est une classe de base permettant d’identifier tout élément de contrôle ou 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, d’une partie de contrôle ou d’un autre élément d’interface utilisateur pris en charge par les styles visuels.
VisualStyleRenderer fournit les méthodes qui dessinent et obtiennent des informations sur chaque VisualStyleElement définie par le style visuel actuel du système d’exploitation. Les informations qui peuvent être récupérées sur un élément incluent 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 de styles visuels (UxTheme) à partir de la partie Windows Shell du Kit de développement logiciel (SDK) de plateforme Windows. Pour plus d’informations, consultez Activation des styles visuels.
Pour plus d’informations sur l’utilisation de VisualStyleRenderer et de VisualStyleElement, consultez How to : Render a Visual Style Element.
Activation des styles visuels
Pour activer les styles visuels d’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 méthode Application.EnableVisualStyles de la classe Application.
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 des styles visuels. Lors du dessin d’un contrôle personnalisé, vous pouvez vérifier la valeur de RenderWithVisualStyles pour déterminer s’il faut rendre votre contrôle avec ou sans styles visuels. Le tableau suivant répertorie les quatre conditions qui doivent exister pour RenderWithVisualStyles retourner 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é les 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 à l’aide d’un manifeste d’application qui spécifie que ComCtl32.dll version 6 ou ultérieure sera utilisée pour dessiner des 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.ClientAreaEnabled ou VisualStyleState.ClientAndNonClientAreasEnabled. |
Pour déterminer quand un utilisateur active ou désactive des styles visuels, ou passe d’un style visuel à un autre, recherchez la valeur UserPreferenceCategory.VisualStyle dans les gestionnaires des événements SystemEvents.UserPreferenceChanging ou SystemEvents.UserPreferenceChanged.
Important
Si vous souhaitez utiliser VisualStyleRenderer pour afficher un contrôle ou un élément d’interface utilisateur lorsque l’utilisateur active ou bascule des styles visuels, assurez-vous de le faire lors de la gestion de l’événement UserPreferenceChanged au lieu 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
.NET Desktop feedback