Mittwoch, 23. Mai 2012


Artikel

Oktober 2009 | Artikel

7.0 = 6.1 Fortsetzung, Teil 3

Teil 1   Teil 2   Teil 3   

Doch die Superbar ist nicht die einzige Änderung an der Benutzeroberfläche in Windows 7, denn zwei weitere Features offenbaren sich ebenfalls relativ zügig: Die Rede ist von AeroSnap und AeroShake.

AeroSnap: Mit AeroSnap ist ein vereinfachtes Docking von Fenstern möglich. Zieht der Anwender ein Fenster an den oberen Rand des Bildschirms, wird das entsprechende Fenster maximiert. Zieht er es von dort wieder nach unten, wird der vorherige Zustand wiederhergestellt. Außerdem lässt sich ein Fenster auf die halbe Bildschirmgröße vergrößern, indem es an den linken oder rechten Rand des Bildschirms gezogen wird. Auch hierbei lässt sich der vorherige Zustand wiederherstellen, indem das Fenster vom Rand wieder weggezogen wird.

AeroShake: Um alle Fenster außer dem derzeit aktiven in die Superbar zu minimieren, bietet Windows 7 das Feature AeroShake an. Hierfür genügt es, das aktive Fenster in der Titelleiste anzufassen und es zu „schütteln“ – nach wenigen Augenblicken minimieren sich alle anderen Fenster und sorgen so für mehr Übersicht auf dem Desktop.

Interessant ist, dass diese beiden Features im Prinzip komplett von Windows gehandhabt werden können, da lediglich Mausbewegungen auf dem Fensterrahmen ausgewertet werden müssen. Das bedeutet, dass Entwickler keine besonderen Vorkehrungen treffen müssen, um AeroSnap und AeroShake zu unterstützen. Allerdings gibt es eine Einschränkung: Einige Anwendungen zeichnen ihren Rahmen selbst – in der Regel, um auch den Rahmen des Fensters in einem firmenspezifischen Design darzustellen. Allerdings gehört der Fensterrahmen in Windows zu der so genannten Non-Client-Area, die für Anwendungen im Normalfall tabu ist. Genau hier liegt auch der Haken: Zeichnet eine Anwendung ihren Fensterrahmen selbst, funktionieren AeroSnap und / oder AeroShake nicht mehr. Als Workaround können die beiden Aktionen per Hand selbst implementiert werden, korrekt wäre allerdings, das Zeichnen des Fensterrahmens Windows zu überlassen und auf ein Theming desselben zu verzichten.

Stolperstein dpi-Einstellung

Die für Entwickler kritischste Änderung in Windows 7 ist allerdings zugleich diejenige, die am wenigsten ins Auge fällt: Windows 7 ist das erste Betriebssystem von Microsoft, das nach der Installation ohne weiteres Eingreifen des Anwenders potenziell eine höhere dpi-Einstellung verwendet als die klassischerweise genutzten 96 dpi. Abhängig von der maximalen Auflösung und der physikalischen Größe des Bildschirms wechselt Windows 7 bei der Installation gegebenenfalls auf 120 oder sogar 144 dpi, was einem Zoom um 125 beziehungsweise 150 Prozent entspricht. Rein theoretisch sind jedoch auch beliebige Zwischenstufen oder noch höhere Werte als 144 dpi denk- und einstellbar.

Sofern eine Anwendung bereits auf der modernsten Oberflächentechnologie von .NET – nämlich WPF – basiert, können die Entwickler diesem Thema gelassen gegenüberstehen: WPF ist von Haus aus implizit fähig, mit höheren dpi-Einstellungen korrekt umzugehen. Anders sieht es aus, wenn noch Windows Forms oder gar eine Webtechnologie wie HTML oder Silverlight genutzt wird. All diese Technologien sind nämlich nicht in der Lage, von sich aus korrekt mit höheren dpi-Einstellungen umzugehen, sondern erfordern händisches Eingreifen. Auch wenn sich die jeweiligen Vorgehensweisen im Detail unterscheiden, folgen sie doch alle dem gleichen Prinzip:

  • Zunächst wird die UI mit einer Auflösung von 96 dpi entworfen.
  • Zur Laufzeit wird zunächst die tatsächliche dpi-Einstellung ermittelt und der Faktor zwischen ihr und 96 dpi berechnet (beispielsweise würde bei 120 dpi ein Faktor von 1,25 ermittelt, weil 120 / 96 = 1.25 gilt).
  • Danach werden sämtliche Positionen, Abmessungen und Größen mit diesem berechneten Faktor skaliert.
Beachtet werden muss hierbei insbesondere, dass diese Berechnung nicht nur für Controls durchgeführt werden muss, sondern beispielsweise auch für Bilder und sämtliche sonstigen Grafiken wie beispielsweise Icons, wobei bei einer Skalierung nach oben gegebenenfalls Qualitätsverluste auftreten können. Deshalb empfiehlt es sich, zumindest für die gängigen dpi-Einstellungen 96, 120 und 144 dpi entsprechend optimierte Bilder auszuliefern und zur Laufzeit dynamisch das nächstgrößere zu wählen, so dass ohne Qualitätsverlust nach unten skaliert werden kann. Zu guter Letzt sei der Vollständigkeit halber noch erwähnt, dass eine Anwendung sich für die nahtlose Unterstützung von höheren dpi-Einstellungen als "High dpi Aware" klassifizieren muss, indem in ihrem Manifest ein entsprechender Vermerkenthalten ist.

Teil 1   Teil 2   Teil 3   

Kommentare