Unterstützen von Designs mit hohem Kontrast

In diesem Thema wird die Unterstützung für Designs mit hohem Kontrast in Windows 8 mit denen früherer Windows-Versionen verglichen und erläutert, wie Designs mit hohem Kontrast in einer Windows 8-Anwendung unterstützt werden.

Sie enthält die folgenden Abschnitte.

Übersicht über die Unterstützung von Designs mit hohem Kontrast

Windows 7 und frühere Versionen unterstützen zwei Themenmodelle, einschließlich des klassischen Legacymodells von Windows und der aktuellen visuellen Stile. Das klassische Windows-Modell wurde über Windows 7 beibehalten, hauptsächlich um die verschiedenen Designs mit hohem Kontrast zu unterstützen. Das klassische Windows-Modell hat jedoch eine Reihe von Nachteilen:

  • Keine Unterstützung für Designs, die visuelle Stile verwenden, z. B. Windows Aero. Benutzer von Designs mit hohem Kontrast müssen die klassische Windows-Benutzeroberfläche verwenden.
  • Keine Unterstützung für Benutzeroberflächenfeatures, die für die Ausführung vom Desktopfenster-Manager (DWM) abhängig sind, z. B. Miniaturansichten und die vollbildliche Bildschirmlupe, die in Windows 7 eingeführt wurde.
  • Entwickler müssen zwei separate Codepfade verwalten, um die beiden unterschiedlichen Themenmodelle zu unterstützen.

In Windows 8 und später behandeln die folgenden Änderungen am Designmodell die vorherigen Nachteile:

  • Das klassische Designmodell von Windows wird nicht mehr unterstützt, sodass Entwickler nur einen Codepfad für Anwendungen verwalten können, die nur auf Windows 8 abzielen.
  • Da visuelle Stile und DWM in Windows 8 aktiviert sind, haben Benutzer mit hohem Kontrast Zugriff auf Features wie Miniaturansichten und die Vollbildlupe.
  • Visuelle Stile unterstützen das Festlegen der Farben verschiedener UI-Elemente, sodass Benutzer mit hohem Kontrast die Benutzeroberfläche an individuelle Anforderungen und Einstellungen anpassen können.
  • Windows 8 bietet Kompatibilitätsunterstützung für vorhandene Anwendungen, die für die Verwendung von Designs mit hohem Kontrast konzipiert sind, die auf dem klassischen Windows-Designmodell basieren.

Unterstützung von Designs mit hohem Kontrast in Windows 8 und höher

Da visuelle Stile in Windows 8 im Modus mit hohem Kontrast aktiviert sind, ist die Unterstützung von Designs mit hohem Kontrast unkompliziert, solange Sie die folgenden Richtlinien beachten.

  • Schrift- und Steuerelementgrößen. Um sicherzustellen, dass Ihre Benutzeroberfläche für Benutzer mit Behinderungen zugänglich ist, legen Sie die Schriftgrößen gemäß den aktuellen Designeinstellungen fest. Legen Sie die Größe von Steuerelementen auf mindestens die Standardgröße fest.
  • Farben. Vermeiden Sie hartcodierte Farben. Verwenden Sie stattdessen die Systemfarben, da sie auf dem aktuellen Design basieren. Die Verwendung benutzerdefinierter Farben kann die Farben in den Designs mit hohem Kontrast beeinträchtigen und überschreiben.
  • Anwendungsmanifest. Für Anwendungen, die für die Verwendung mit den neuen Designs mit hohem Kontrast konzipiert sind, sollte ein Abschnitt zur Anwendungskompatibilität in ihrem Manifest definiert sein, der die Windows 8 Kompatibilitäts-GUIDs enthält. Andernfalls geht Windows davon aus, dass die Anwendung für eine ältere Version von Windows konzipiert ist, und rendert die Anwendungsbenutzeroberfläche, indem das klassische Windows-Designmodell simuliert wird.

Hinzufügen eines Kompatibilitätsabschnitts zu Ihrem Anwendungsmanifest

Ein Anwendungsmanifest ist eine XML-Datei, die die Anforderungen für eine Anwendung beschreibt. Im Kompatibilitätsabschnitt des Manifests werden die von der Anwendung unterstützten Windows-Versionen angegeben. Die folgenden GUIDs werden im Kompatibilitätsabschnitt verwendet, um die verschiedenen Versionen von Windows zu identifizieren.

Version GUID
Windows Vista {e2011457-1546-43c5-a5fe-008deee3d3f0}
Windows 7 {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
Windows 8 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}

 

Der Kompatibilitätsabschnitt kann mehrere Versionen von Windows angeben, aber jede muss in einem eigenen <supportedOS/> Tag enthalten sein. Das folgende Beispiel zeigt ein Anwendungsmanifest, das Windows 7 und Windows 8 im Kompatibilitätsabschnitt angibt:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!--The ID below indicates application support for Windows 8 -->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>

            <!--The ID below indicates application support for Windows 7 -->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        </application>
    </compatibility>
</assembly>

Wenn eine Anwendung kein Kompatibilitätsmanifest aufweist, wird davon ausgegangen, dass es sich um eine Windows Vista-Anwendung handelt und keine Themensteuerelemente im Clientbereich verwendet, wenn ein Design mit hohem Kontrast aktiv ist. Auch das Verhalten einiger Funktionen für visuelle Stile ist betroffen. Beispielsweise geben IsThemeActive, IsCompositionActive und IsAppThemed FALSE zurück, während OpenThemeData und OpenThemeDataEx ein NULL-Handle zurückgeben. Dies dient der Kompatibilitätsunterstützung, sodass Anwendungen, die vor Windows 8 erstellt wurden, ihre Benutzeroberfläche weiterhin im gleichen Aussehen rendern können wie der Modus mit hohem Kontrast in früheren Versionen von Windows, in denen keine visuellen Stile verfügbar sind.

Auf Windows 8 erhält die Anwendung weiterhin die Vorteile der Desktopkomposition. Dies bedeutet beispielsweise, dass Benutzerfreundlichkeitsanwendungen wie die Vollbildlupe nicht von der status des Manifests einer einzelnen Anwendung abhängen. Die Benutzerfreundlichkeitsanwendung funktioniert weiterhin im Modus mit hohem Kontrast mit einer Anwendung, die sich in ihrem Manifest nicht als Windows 8 kompatibel identifiziert.

Die folgenden Bilder zeigen ein einfaches Dialogfeld in hohem Kontrast unter Windows 7.

Dialogfeld

Diese Abbildung zeigt das gleiche Dialogfeld mit hohem Kontrast auf Windows 8, jedoch mit windows 7-Kompatibilität, die im Anwendungsmanifest angegeben ist:

w8 Dialogfeld mit hohem Kontrast

Diese Abbildung zeigt dasselbe Dialogfeld mit hohem Kontrast auf Windows 8, wobei Windows 8 im Anwendungsmanifest angegeben ist:

w8 Dialogfeld mit hohem Kontrast mit Manifest

Erkennen eines hohen Kontrasts in früheren Windows-Versionen

Anwendungen, die unter früheren Versionen von Windows ausgeführt werden, haben keinen Zugriff auf die neuen Designs mit hohem Kontrast. Wenn Ihre Anwendung mit früheren Versionen von ausgeführt werden muss, sollten Sie die Unterstützung für das Rendern Ihrer Benutzeroberfläche in hohem Kontrast im klassischen Windows-Designmodell einschließen. Ihre Anwendung kann bestimmen, ob ein Design mit hohem Kontrast aktiv ist, indem sie die SystemParametersInfo-Funktion mit dem flag SPI_GETHIGHCONTRAST aufruft.

Aktivieren von visuellen Stilen

Visuelle Stile