Prise en charge des thèmes à contraste élevé (XAML)

Applies to Windows and Windows Phone

Vous cherchez la version HTML/JavaScript de cette rubrique ? Voir Prise en charge des thèmes à contraste élevé (HTML).

Une application Windows Runtime en C++, C# ou Visual Basic prend en charge les thèmes à contraste élevé par défaut. Si un utilisateur a décidé que le système doit utiliser un thème à contraste élevé parmi les outils d’accessibilité ou les paramètres système, l’infrastructure utilise automatiquement des couleurs et paramètres de style qui produisent une disposition à contraste élevé et un rendu pour les contrôles et composants dans l’interface utilisateur.

Cette prise en charge par défaut est basée sur l’utilisation des thèmes et des modèles par défaut. Ces thèmes et modèles font référence aux couleurs système comme définitions de ressources, et les sources des ressources changent automatiquement quand le système utilise un mode de contraste élevé. Toutefois, si vous utilisez des modèles, thèmes et styles personnalisés pour votre contrôle, prenez soin de ne pas désactiver la prise en charge intégrée du contraste élevé. Si vous utilisez l’un des concepteurs XAML pour Microsoft Visual Studio pour les styles, le concepteur génère un thème à contraste élevé distinct en plus du thème principal chaque fois que vous définissez un modèle qui diffère sensiblement du modèle par défaut. Les dictionnaires de thèmes distincts s’inscrivent dans la collection ThemeDictionaries, une propriété dédiée d’un élément ResourceDictionary.

Pour plus d’informations sur les thèmes et modèles de contrôles, voir Démarrage rapide : modèles de contrôles. Il est souvent très instructif d’examiner les thèmes et dictionnaires de ressources XAML pour des contrôles spécifiques, et de voir la façon dont les thèmes sont créés et dont ils font référence à des ressources qui sont similaires mais différentes pour chaque paramètre de contraste élevé possible.

Détection de l’activation d’un thème à contraste élevé

Une application Windows Runtime peut utiliser des membres de la classe AccessibilitySettings pour détecter les paramètres actuels des thèmes à contraste élevé. La propriété HighContrast détermine si un thème à contraste élevé est actuellement sélectionné. Si HighContrast a la valeur true, l’étape suivante consiste à vérifier la valeur de la propriété HighContrastScheme afin d’obtenir le nom du thème à contraste élevé utilisé. "Contraste blanc élevé" et "Contraste noir élevé" sont les valeurs normales de HighContrastScheme auxquelles votre code doit répondre. Comme les clés ResourceDictionary définies en XAML ne peuvent pas contenir d’espaces, les clés de ces thèmes dans un dictionnaire de ressources sont généralement "HighContrastWhite" et "HighContrastBlack", respectivement. Vous devez également disposer d’une logique de remplacement pour un thème à contraste élevé par défaut au cas où la valeur serait une autre chaîne. L’exemple de contraste élevé XAML illustre cette logique.

Remarque  Prenez soin d’appeler le constructeur AccessibilitySettings à partir d’une étendue dans laquelle l’application est initialisée et affiche déjà du contenu.

Depuis Windows 8.1, les applications peuvent basculer vers l’utilisation des valeurs de ressource à contraste élevé lorsqu’elles sont en cours d’exécution. Cela ne fonctionne que si les ressources sont demandées à l’aide de l’extension de balisage ThemeResource dans le code XAML du style ou du modèle. Comme les thèmes par défaut (generic.xaml) utilisent tous cette technique ThemeResource, vous obtenez ce comportement si vous utilisez des thèmes de contrôle par défaut. Les contrôles ou styles de contrôle personnalisés prennent cela en charge si vous avez également utilisé cette technique de ressource ThemeResource dans vos modèles et styles personnalisés. Toutefois, les applications développées pour cibler Windows 8 ne rechargent pas automatiquement les ressources lorsqu’elles sont en cours d’utilisation.

Comportement de Windows 8

Windows 8 ne prenait pas en charge l’extension de balisage ThemeResource, Windows 8.1 la prend désormais en charge. En outre, Windows 8 ne prenait pas en charge le changement dynamique des ressources liées aux thèmes pour une application Windows Runtime. Vous deviez redémarrer l’application pour que le changement de thème soit activé pour les styles et les modèles XAML. Cette expérience utilisateur n’est pas convenable. Nous vous recommandons de recompiler les applications et de les faire cibler Windows 8.1 afin que leurs styles soient utilisés avec ThemeResource et que leurs thèmes changent quand l’utilisateur passe d’un thème à l’autre. Les applications qui ont été compilées pour Windows 8 mais qui sont exécutées sous Windows 8.1 continuent d’appliquer le comportement Windows 8.

Rubriques associées

Exemple de paramètres et de contraste d’interface utilisateur
Exemple d’accessibilité XAML
Exemple de contraste élevé XAML
AccessibilitySettings

 

 

Afficher:
© 2015 Microsoft