Unterstützen hoher Kontrast Designs
In diesem Thema wird die Unterstützung für Designs mit hohem Kontrast in Windows 8 mit denen früherer Versionen von Windows verglichen, und es wird 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 für hoher Kontrast Designs
- Unterstützen von hoher Kontrast Designs in Windows 8 und höher
- Hinzufügen eines Kompatibilitätsabschnitts zum Anwendungsmanifest
- Erkennen von hoher Kontrast in früheren Versionen von Windows
- Zugehörige Themen
Übersicht über die Unterstützung für hoher Kontrast Designs
Windows 7 und früher unterstützen zwei Themenmodelle, einschließlich des legacy Windows klassischen Modells und der aktuellen visuellen Stile. Das Windows klassische Modell wurde über Windows 7 beibehalten, hauptsächlich zur Unterstützung der verschiedenen Designs mit hohem Kontrast. Das Windows klassische Modell hat jedoch eine Reihe von Nachteilen:
- Keine Unterstützung für Designs, die visuelle Stile verwenden, z. B. Windows Format. Benutzer von Designs mit hohem Kontrast müssen die Windows klassische Benutzeroberfläche verwenden.
- Keine Unterstützung für Benutzeroberflächenfeatures, die auf Desktopfenster-Manager (DWM) basieren, z. B. Vorschauansichten von Miniaturansichten und die In Windows 7 eingeführte Vollbildlupe.
- Entwickler müssen zwei separate Codepfade verwalten, um die beiden unterschiedlichen Themenmodelle zu unterstützen.
In Windows 8 und höher werden die vorherigen Nachteile durch die folgenden Änderungen am Themenmodell umgangen:
- Das Windows klassischen Themenmodell wird nicht mehr unterstützt, sodass Entwickler nur einen Codepfad für Anwendungen verwalten können, die nur auf Windows 8 ausgerichtet sind.
- Da visuelle Stile und DWM in Windows 8 eingeschaltet sind, haben Benutzer mit hohem Kontrast Zugriff auf Features wie Vorschauansichten von Miniaturansichten und die Vollbildlupe.
- Visuelle Stile unterstützen das Festlegen der Farben verschiedener Benutzeroberflächenelemente, 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 basierend auf dem Windows klassischen Designmodell entwickelt wurden.
Unterstützen hoher Kontrast Designs in Windows 8 und höher
Da visuelle Stile in Windows 8 im Modus für hohen Kontrast aktiviert sind, ist die Unterstützung von Designs mit hohem Kontrast einfach, solange Sie die folgenden Richtlinien beachten.
- Schrift- und Steuerelementgrößen. Um sicherzustellen, dass Benutzer mit Behinderungen auf Ihre Benutzeroberfläche zugreifen können, legen Sie die Schriftgrade gemäß den aktuellen Designeinstellungen fest. Legen Sie die Größe der Steuerelemente auf mindestens die Standardgröße fest.
- Farben. Vermeiden Sie die Verwendung hart codierten 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. Anwendungen, die für die Arbeit mit den neuen Designs mit hohem Kontrast entwickelt wurden, sollten im Manifest einen Anwendungskompatibilitätsabschnitt definiert haben, 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 Benutzeroberfläche der Anwendung, indem das Windows klassische Designmodell simuliert wird.
Hinzufügen eines Kompatibilitätsabschnitts zum Anwendungsmanifest
Ein Anwendungsmanifest ist eine XML-Datei, die die Anforderungen für eine Anwendung beschreibt. Im Kompatibilitätsabschnitt des Manifests werden die Versionen von Windows identifiziert, die von der Anwendung unterstützt werden. 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} |
Im Kompatibilitätsabschnitt können mehrere Versionen von Windows angegeben werden, aber jedes muss in einem eigenen Tag enthalten <supportedOS/> 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 über kein Kompatibilitätsmanifest verfügt, 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. Außerdem wird das Verhalten einiger visueller Stilfunktionen beeinflusst. IsThemeActive, IsCompositionActiveund IsAppThemed geben beispielsweise 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 in der gleichen Darstellung wie der Modus mit hohem Kontrast früherer Versionen von Windows rendern können, in denen visuelle Stile nicht verfügbar sind.
Auf Windows 8 erhält die Anwendung weiterhin die Vorteile der Desktopkomposition. Dies bedeutet beispielsweise, dass Benutzerfreundlichkeitsanwendungen wie die Vollbildlupe nicht vom 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 Abbildungen zeigen ein einfaches Dialogfeld mit hohem Kontrast auf Windows 7.

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

Diese Abbildung zeigt das gleiche Dialogfeld in hohem Kontrast auf Windows 8, wobei Windows 8 im Anwendungsmanifest angegeben ist:

Erkennen von hoher Kontrast in früheren Versionen von Windows
Anwendungen, die in früheren Versionen von Windows ausgeführt werden, haben keinen Zugriff auf die neuen Designs mit hohem Kontrast. Wenn Ihre Anwendung in früheren Versionen von ausgeführt werden muss, sollten Sie Unterstützung für das Rendern der Benutzeroberfläche in high contraWindowsst im Windows klassischen Themingmodell einschließen. Ihre Anwendung kann ermitteln, ob ein Design mit hohem Kontrast aktiv ist, indem sie die SystemParametersInfo-Funktion mit dem SPI _ GETHIGHCONTRAST-Flag aufruft.