Partager via


Rendu des contrôles avec les styles visuels

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

Classes de rendu pour des contrôles communs

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 la restitution de certains contrôles Windows Forms communs. Toutefois, cette classe dessine des contrôles dans le style Windows classique, qui peut rendre difficile de maintenir une expérience d'interface utilisateur cohérente lorsque vous dessinez des contrôles personnalisés dans les applications ayant les styles visuels activés.

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

Quelques-unes de ces classes sont conçues pour dessiner le contrôle connexe, que les styles visuels soient disponibles ou non. Si les styles visuels sont activés, les membres de classe dessinent alors le contrôle connexe avec les styles visuels ; si les styles visuels sont désactivés, les membres de classe dessinent le contrôle dans le style Windows classique. Ces classes comprennent :

D'autres classes peuvent dessiner uniquement le contrôle connexe lorsque les styles visuels sont disponibles, et leurs membres lèvent une exception si les styles visuels sont désactivés. Ces classes comprennent :

Pour plus d'informations sur l'utilisation de ces classes pour dessiner un contrôle, consultez Comment : utiliser une classe de rendu des contrôles.

É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 à propos de tout contrôle ou élément d'interface pris en charge par les styles visuels. Les contrôles pris en charge incluent des contrôles communs qui ont une classe de rendu dans l'espace de noms System.Windows.Forms (consultez la section précédente), ainsi que d'autres contrôles, tels que les contrôles onglet et les contrôles rebar. D'autres éléments d'interface utilisateur pris en charge incluent les parties du menu Démarrer, la barre des tâches et la zone de fenêtres non cliente.

Les classes principales de l'espace de noms System.Windows.Forms.VisualStyles sont VisualStyleElement et VisualStyleRenderer. VisualStyleElement est une classe de base servant à identifier tous les contrôles ou éléments 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 beaucoup de 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 é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éfini par le style visuel actuel du système d'exploitation. Les informations qui peuvent être récupérées à propos d'un élément comprennent sa taille par défaut, son type d'arrière-plan et ses définitions de couleurs. VisualStyleRenderer inclut dans un wrapper les fonctionnalités de l'API de styles visuels (UxTheme) de la partie shell Windows du Kit de développement Platform SDK de Windows. Pour plus d'informations, consultez « Using Windows XP Visual Styles » dans le Kit de développement Platform SDK du MSDN Library à l'adresse https://msdn.microsoft.com/fr-fr/library/default.aspx.

Pour plus d'informations sur l'utilisation de VisualStyleRenderer et de VisualStyleElement, consultez Comment : restituer un élément de style visuel.

Activation de styles visuels

Pour activer les styles visuels dans une application écrite pour le .NET Framework version 1.0, les programmeurs doivent inclure un manifeste d'application spécifiant que la version 6 de ComCtl32.dll ou ultérieure sera utilisée pour dessiner des contrôles. Les applications créées avec le .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 de styles visuels

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

Condition

Remarques

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 en utilisant un manifeste d'application qui spécifie cette ComCtl32.dll version 6 ou version ultérieure sera utilisée pour dessiner des contrôles.

Les styles visuels sont utilisés pour dessiner la zone cliente des fenêtres de l'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 bascule d'un style visuel à un autre, recherchez la présence de la valeur UserPreferenceCategory.VisualStyle dans les gestionnaires SystemEvents.UserPreferenceChanging ou les événements SystemEvents.UserPreferenceChanged.

Important

Si vous souhaitez utiliser VisualStyleRenderer pour restituer un contrôle ou un élément d'interface utilisateur lorsque l'utilisateur active ou bascule entre des styles visuels, faites-le lors de la gestion de l'événement UserPreferenceChanged et non avec l'événement UserPreferenceChanging. Une exception sera levée si vous utilisez la classe VisualStyleRenderer lors de la gestion de UserPreferenceChanging.

Voir aussi

Autres ressources

Peinture et rendu personnalisés des contrôles