#bldwin: Making your desktop apps shine on high DPI displays

Steve Wright (Senior Program Manager bei Microsoft) hat in seinem Vortrag über die Oberflächenentwicklung von Desktop-Anwendungen für hochauflösende Monitore gesprochen.

Aktuell verwenden ca. 96% der PCs eine DPI-Skalierung von 100% – sprich keine. Dies wird sich aber ändern, da immer mehr Geräte mit hochauflösenden Displays auf den Markt kommen.

WP_20130626_030

Windows 8.1 ist in der Lage hochauflösende Monitore zu erkennen und automatisch die DPI-Skalierung von Anwendungen für jeden Monitor einzeln anzupassen. Die Zunahme der Auflösung soll nicht dafür verwendet werden, mehr Inhalt auf die Bildschirme zu bringen, sondern die Inhalte in einer lesbaren Gösse in hoher Qualität darzustellen. Schriften sollen lesbarer und schärfer sowie Bilder detaillierter werden.

Der Automatismus unterscheidet zwischen Anwendungen in den Stati: “DPI unaware”, “System DPI Aware” und “Per Monitor DPI Aware”. “DPI unaware” heisst, dass Windows von einer Anwendung ausgeht, die nicht skalierfähig ist und die Oberfläche als Bitmap direkt skaliert. Das Ergebnis sind zwar vergrößerte aber auch recht unscharfe Bilder, Schriften und Bedienelemente. “System DPI Aware” bedeutet, dass die Anwendung auf DPI-Skalierung grundlegend vorbereitet ist. Windows skaliert hier ebenfalls die Anwendung als Bitmap – allerdings nicht alles, sondern mir die Teile, die nicht auf Skalierung vorbereitet wurden. Das Ergebnis kann auch unscharf werden. “Per Monitor DPI Aware” bedeutet, dass die Anwendung auf DPI-Skalierung vollständig ausgelegt ist. Windows skaliert die Anwendung dann nicht als Bitmap, sondern stellt nur die grundlegenden Skalierungsmechanismen zur Verfügung und überlässt die tatsächliche Skalierung dann der Anwendung. Nur mit diesem Status können Bedienoberflächen pixelperfekt skaliert werden.

You can let Windows scale your app. But you’ll look much better on high DPI devices if you are system DPI aware. Consider per-monitor DPI support if multimonitor scenarios are important use scenarios for your customers.

Um ein gutes Skalierungsergebnis zu erreichen und dafür zu sorgen, dass Schriften und Bilder tatsächlich detaillierter, schärfer sowie besser lesbar werden, müssen die Oberflächen also angepasst werden. Bei der Entwicklung müssen folgende Punkte beachtet werden:

  • Plan how to scale yoir content
  • Let windows know you’ll do the work
  • Figure out the right scale factor
  • Listen to changes in scale factor

In Windows 8.1 macht sich die Veränderung auch bei der Nutzung dieser Funktion bemerkbar. Anwender können die DPI-Skalierung zukünftig nahezu stufenlos einstellen. Außerdem bekommt die gute alte Schriftskalierung wieder einen prominenteren Platz.

WP_20130626_034

Die Skalierungsfunktion von Windows 8.1 ist eine sehr gute Verbesserung, die sowohl mit WPF als auch mit Winforms funktionieren soll. Allerdings wird die automatische Skalierung die wenigsten Anwender begeistern, weil die Bedienoberflächen unscharf sind. Richtig zum Tragen kommt diese Funktion erst, wenn alle Anwendungen “Per Monitor DPI Aware” sind. Das bedeutet für die Oberflächenentwicklung zusätzlichen Aufwand. Nicht nur im Quellcode. Auch bei Bildern und Icons müssen Änderungen vorgenommen werden, damit die Skalierung funktioniert.

Siehe auch

Whitepaper: High DPI support in Windows 8.1

War dieser Artikel hilfreich für Dich?

Nach oben scrollen