Anwendungen auf Windows 8.1 unscharf/blurry


Nachdem Microsott IT so nett war, mit System Center Configuration Manager meinen Laptop über Direct Access im Expresstempo auf Windows 8.1 umzustellen, bin ich bei meiner Hardware auf ein Problem gestoßen, dass uns in der Zukunft noch eine Weile beschäftigen wird:

Anwendungen erscheinen unscharf auf hochauflösenden Displays.

Damit jeder verstehen kann, was ich meine, zeige ich als erstes einen Screenshot. Ein Bild sagt bekanntlich mehr als tausend Worte:

Screenshot

Der Screenshot stammt  von meinem primären Arbeitsgerät, einem Samsung Ativ 700T1. Bei einer Größe von 11,6 Zoll beträgt die Auflösung 1.920 x 1.080 Pixel (Full HD). Bei so einer hohen Pixeldichte stelle ich die Größe aller Elemente auf 125%.

In Windows 8.1 erfolgt das automatisch. Manuell einstellen lässt es sich in der Systemsteuerung unter “Darstellung und Anpassung” > “Anzeige”:

SNAGHTML5abe24f

Das Problem, dass ich bis Windows 8 dabei hatte, war der Multi-Monitor-Betrieb. Immer wenn ich im Büro oder Zuhause einen zweiten oder dritten Bildschirm angeschlossen hatte, war auf dem die gleiche Vergrößerung im Einsatz. Das war vor allem störend auf VGA-Projektoren bei einer Auflösung von 1.024 x 768 Pixeln. Da war kaum noch sinnvoll zu nutzender Platz auf dem Bildschirm. Es ist aber auch ein Problem bei 4k-Displays:

Mit Windows 8.1 wird mit der automatischen Bildschirmskalierung nun alles besser. Damit kann man mehrere Bildschirme gleichzeitig mit unterschiedlichen Pixeldichten betreiben. Windows kümmert sich automatisch um die Skalierung der Fenster.

An sich eine tolle Sache, wäre da nicht ein Haken: Das Problem bei hohen Pixeldichten waren schon immer die Anwendungen. Sind diese nicht HighDPI-fähig, kann Windows nur durch Bitmap-Vergrößerung/Verkleinerung skalieren. Dadurch schlagen wir uns dann mit unscharfen Bildern herum.

Die Alternative sind Fehler in der UI wie zum Beispiel falsche Zeilenumbrüche, nicht mehr erreichbare Buttons, etc. Das Problem ist nicht von Windows allein lösbar – die Anwendungen müssen hier auch mitspielen. Das ist übrigens auch ein Grund, warum Ribbons Einzug gehalten haben in Windows. Ribbons sind optimale Controls zur Verwendung bei unterschiedlichen Pixeldichten:

Wer als Anwendungsentwickler näheres zur Programmierung von HighDPI-fähigen Anwendungen erfahren will, sei auf das Whitepaper Writing DPI-Aware Desktop Applications in Windows 8.1 und den Artikel Writing High-DPI Win32 Applications verwiesen.

Wenn man den Screenshot von oben in voller Größe betrachtet, kann man sehen, dass links der Internet Explorer 11 glasklar zu lesen ist, während rechts in Google Chrome Schrift und Programm-UI unscharf dargestellt werden. Ich habe ihn in voller Auflösung als Anhang unten an den Beitrag angehängt.

Die Ursache des Problems ist die Tatsache, dass Google Chrome sich als nicht HighDPI-fähiges Programm gegenüber dem Betriebssystem ausweist. Wen die Hintergründe interessieren, der sei auf den Blogeintrag Scaling to different Screens vom Building Windows 8-Blog verwiesen.

Für Google Chrome stammt der entsprechende Bugeintrag vom 16.09.2012. Bisher ist der Bug aber immer noch nicht gelöst. Er hat als unangenehme Nebenwirkung, dass die Bedienung durch Touch mit Google Chrome nicht richtig funktioniert.

Für Retina-Displays gab es in der Mac OS X-Version recht zügig einen Workaround, was einfacher war, weil es dort nur zwei verschiedene Pixeldichten zu beachten gibt. Retina-Displays sind nicht umsonst genau 2x größer als die vorher verwendeten Displays.

Windows-PCs dagegen gibt es mit unterschiedlichsten Displaygrößen. Mit der Vielfalt unseres Ökosystems, das dem Kunden echte Wahlfreiheit bietet, gibt es eben auch einen größeren Arbeitsaufwand für Programmierer. Hier eine Statistik über die übliche Bildschirmauflösungen bei Windows-PCs…

…und der üblichen Auflösungen und Bildschirmgrößen in Windows 8:

Nachdem für Google Chrome die Aussage der Entwickler “Gene will hopefully be fixing this up in the next few days, or at least ascertaining what needs to be done.” etwas optimistisch war (das ist demnächst auch schon ein Jahr her), habe ich mich umgeschaut, welche anderen Möglichkeiten heute als Workaround sich anbieten.

Als erstes kann man natürlich die systemweiten Einstellungen verändern. Wenn man die Option “Manuell eine Skalierungsstufe für alle Anzeigegeräte auswählen” aktiviert, bekommt man das frühere Verhalten wieder zurück und alle Anwendungen verhalten sich mehr oder weniger konsistent.

SNAGHTML5c9fa89

Der Nachteil ist der Verlust der automatischen Skalierung bei mehreren Bildschirmen. Wer nur einen Bildschirm oder mehrere Bildschirme mit ähnlicher Pixeldichte hat, für den mag das gehen. Da ich gerade eine Lösung für unterschiedliche Pixeldichten brauche, hilft mir das nicht weiter.

Zweite Lösung ist das Abschalten der automatischen Skalierung auf Anwendungsebene. Dazu muss man in der Programmverknüpfung die Option “Skalierung bei hohem DPI-Wert deaktivieren” setzen. Am Beispiel von Google Chrome geht man in den Ordner

“%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Google Chrome”

und ändert die Einstellungen in den Eigenschaften der Verknüpfung von Google Chrome auf dem zweiten Tab:

SNAGHTML5cf7b69

Danach muss man zwar die Programm-UI von Chrome möglicherweise mit der Lupe bedienen, aber den Webseiteninhalt kann man mit STRG + PLUS vergrößern. Die Schriften und Grafiken werden dann wieder glasklar dargestellt und die Toucheingabe funktioniert auch wieder.

Natürlich kann man auch gleich zu einem HighDPI-fähigen, modernen Browser wechseln. Internet Explorer 11 wird von uns mitgeliefert und zeigt keines dieser Probleme ­čśë

Ich hoffe, dass jetzt durch Windows 8.1 der Druck auf Anwendungsentwickler soweit erhöht wird, dass diese seit mehr als 10 Jahren sträflich vernachlässigte Funktion als Standardfall beim Testen mitberücksichtigt wird.

Have fun!
Daniel

Screenshot.png

Comments (20)

  1. MikeH says:

    Tausend Dank f├╝r die umfassende Darstellung des Themas mit den passenden L├Âsungsvorschl├Ągen und vor allem mit den tiefergehenden Links f├╝r Entwickler!

    Aber eine Spitze muss sein: IE 8.1 mag zwar High DPI f├Ąhig sein, daf├╝r hat er aber einige andere Probleme mit der Darstellung von Webseiten wie hier newyear2006.wordpress.com/…/internet-explorer-11-ist-sehr-langsam-ups-wo-ist-der-kompatibilittsmodus-geblieben und hier http://www.heise.de/…/Aktueller-Internet-Explorer-11-kollidiert-mit-Google-und-Microsoft-Seiten-1982569.html dokumentiert ­čśë

  2. rup.bat says:

    Super vielen Dank f├╝r deine Beschreibung. Mich hat das auch extrem genervt. Jetzt passt alles wieder. Sensationell! Mal wieder etwas dazu gelernt.

  3. Norbert says:

    Hi Daniel,

    ich habe ein Notebook mit 1920×1080 und einen externen Monitor mit 1920×1200. Ich benutze entweder den internen Monitor oder den externen. Nie beide. Folgendes Verhalten. des IE11:

    1. Interner Monitor Skalierung 100% alles super.

    2. Externer Monitor wird angeklemmt und ich habe eine Skalierung von 85% was nat├╝rlich irgendwie "doof" ist. Also auf 100% umschalten.

    3. Externer Monitor wird wieder abgeklemmt, weil ich nach Hause gehe und mein Notebook mitnehme. Interner Monitor mit IE11 hat Skalierung von 125% was mir zu gro├č ist.

    Die Frage: Kann man dieses Verhalten abstellen? Ich will KEINE automatische Anpassung von irgendwelchen Applikationen in Abh├Ąngigkeit des angeschlossenen Monitors. Und ja, in der Systemsteuerung bei Skalierung steht bei mir "Kleiner" Und der Haken bei "Manuell eine Skalierungsstufe f├╝r alle Anzeigeger├Ąte ausw├Ąhlen" bewirkt bei mir auch nicht das gew├╝nschte Verhalten. Windows 8 hatte mit all dem genau _kein_ Problem. ­čśë

    Danke

    Norbert

  4. Hi Norbert,

    steht bei Dir Slider auf "Kleiner" oder ist das ein Radiobutton "Kleiner – 100%"? Hast Du nach der Konfiguration "Manuell eine Skalierungsstufe f├╝r alle Anzeigeger├Ąte ausw├Ąhlen" den Rechner abgemeldet/angemeldet (nicht sperren/entsperren) oder mal neugestartet?
    Der Schalter stellt im Prinzip das dynamische Skalieren ab und damit den Windows 8-Betrieb wieder her.

    Wenn Du allerdings nur eine Ver├Ąnderung des Zoomfaktors im IE11 siehst, aber nicht die Fenster- und Schriftgr├Â├če der UI sich ├Ąndert, dann kann es auch an etwas anderem liegen. Im IE11 gibt es in den Einstellungen unter Erweitert zwei Einstellungen f├╝r den
    Zoom.

    Wie sind die bei Dir gesetzt?

    K├Ânntest Du auch mal DXDiag ausf├╝hren und die Infos speichern. Danach in der DXDiag.txt nachschauen, welche Einstellungen "User DPI Setting" und "System DPI Setting" haben.

    Have fun!
    Daniel

  5. Sven says:

    Ganz 100% ist die HiDPI-Unterst├╝tzung im IE11 aber noch nicht. Wenn ich mir in den Internet-Optionen die Erweitert-Seite anschaue, dann sind die Symbole und Kontrollk├Ąstchen bei einer 200 dpi-Anzeige doch recht winzig. ­čśë

    In der Systemsteuerungskomponente 'Programme und Features' gibt es bei dieser hohen Aufl├Âsung ├╝brigens auch Probleme beim Anpassen der Spaltenbreiten. Wenn man eine Spaltenbreite verkleinert, dann wird die Spaltenbreite der zuvor angepassten Spalte pl├Âtzlich wieder extrem vergr├Â├čert. Eine Verkleinerung aller Spalten f├╝r eine kompakte Anzeige ist so nicht m├Âglich. Das tritt aber nur bei hohen Aufl├Âsungen auf und nicht bei 100%. W├Ąre sch├Ân, wenn Du das mal an die richtige Stelle weiterleiten k├Ânntest. :)

  6. -.- says:

    Outlook und Onenote und so weiter haben das gleiche Problem. Ich w├Ąre vorsichtig wenn ich den Internetexplorer loben w├╝rde. Bisher war dieser immer zwei Schritte hinten dran. Inzwischen habt ihr aufgeschlossen. Das ist das lob von meiner Seite. Weier so. MS ist auf dem richtigen Weg und ich bin inzwischen wieder voll auf eure Produkte umgestiegen.

  7. Cocojordan says:

    Hat funktioniert aber nicht ├╝berall.

    Ich brauch Hilfe ! Weil alles jetzt so unscharf ist ich denke jetzt immer warum ich das Windows 8.1 update gemacht habe!!

  8. Patrick says:

    Vielen Dank f├╝r den guten Hinweis und die Erkl├Ąrung. Ich habe aber das Problem, dass seit dem Update auf Windows 8.1 (zumindest war es mir vorher nicht aufgefallen) der Ger├Ątemanager und auch die Treibermen├╝s unscharf erscheinen. Bei den Programmen, wie bei mir zum Beispiel Microsoft Picture Manager, mag das ja an dem oben beschriebenen Problem liegen. Aber ist dies auch beim Ger├Ątemanager bzw. bei den Treibermen├╝s so? Diese sind ja in Windows 8.1 implementiert. [Bildschirmaufl├Âsung 1920 x 1080, das Umstellen auf manuelle Skalierung hat dabei keine Verbesserung ergeben]

  9. @-.-: Die aktuelle Office-Version sollte problemlos skalieren. Ich beobachte da bisher keine Bitmap-Hochskalierung.

    @Cocojordan: Siehe den Screenshot im Artikel. Wenn Du das Windows 8-Verhalten zur├╝ck haben willst, manuell eine Skalierungsstufe f├╝r alle Anzeigeger├Ąte ausw├Ąhlen und Skalierung auf 100% festlegen.

    @Patrick: Der Ger├Ątemanager und auch die Treibermen├╝s basieren auf der MMC, die als nicht HighDPI-aware eingestellt wurde, weil sie sonst Darstellungsprobleme verursachen w├╝rde. Das Umstellen auf manuelle Skalierung hilft, wenn Du die Skalierung auf 100%
    festlegst.

    Have fun!
    Daniel

  10. fivehundred says:

    Vielen Dank f├╝r die ausf├╝hrliche Erkl├Ąrung! Da es viele Leute allerdings nicht in dieser Tiefe wissen wollen, schlage ich vor, ganz oben kurz zu erkl├Ąren, wie man das fr├╝here Verhalten wieder einstellen kann. Ist ja nur der eine Haken… :)

  11. n3s says:

    das kann man auch in chrome aktivieren:

    chrome://flags/

    HiDPI-Support Windows

    Bei Aktivierung werden Gr├Â├če und Layout von Anwendungen an die DPI-Einstellungen des Betriebssystems angepasst. #high-dpi-support

    ist aber noch nicht standardm├Ą├čig aktiviert weil es noch bugs gibt:

    code.google.com/…/detail

  12. @fivehundred: Hey, das hier ist ein Blog und nicht Twitter ­čśë

    @n3s: Das stimmt. Das Feature sieht aber nicht wirklich Primetime-ready aus. Das Schriftkerning (Abst├Ąnde zwischen den Buchstaben) ist bei mir fehlerhaft, die gesamte UI ist einfach nur aufgeblasen und wirkt zu gro├č, der Button f├╝r einen neuen Tab ist unvollst├Ąndig, Probleme
    mit Toolbars, etc.

    Have fun!
    Daniel

  13. Mark says:

    Ok, ich habe das jetzt sehr gr├╝ndlich durchgelesen und getestet.

    Und kann in keiner Weise eine gute L├Âsung finden.

    Monitore: 15" Notebook mit Full HD + gro├čer Monitor mit 1680×1050

    Manuelle Skalierung auf 100% ist f├╝r den externen Monitor perfekt, 125% f├╝r das FullHD Notebook. Beide Einstellungen sind auf beiden Monitoten mit allen Programmen (au├čer ein paar Icons) gestochen scharf.

    Stelle ich jetzt auf automatische Skalierung, erscheint es so, als w├╝rde 125% intern und 100% auf dem externen Monitor verwendet werden, viele Schriften werden unscharf und sehen furchtbar aus. Dabei gibt es drei Sorten von Programmen:

    Chrome: ist auf externen Monitor scharf, auf internem nicht.

    Firefox: genau umgekehrt

    IE 11: auf beiden scharf, ABER: er skaliert nicht, sondern verh├Ąlt sich auf dem externen Monitor so, als w├Ąre die Skalierung weiter 125%.

    Super, damit bin ich wieder ganz am Anfang, das konnte ich auch manuell einstellen.

    Ist das die Idee der automatischen Skalierung, das Programme entweder unscharf sind, oder eben nicht, sich dann aber der automatischen Skalierung widersetzen???

  14. Nerses says:

    Vielen lieben Dank Daniel. Deine Infos haben mir sehr schnell weitergeholfen und weitere lange Suchzeit erspart. Ich hatte auch das Problem, dass meine 2. Monitor, 42", 1920×1080, nach dem Update von Windows 8 auf 8.1 ungewohnt unscharf und die Menuschriften ungewohnt gro├č waren. Jetzt kenne ich den Grund und konnte ihn durch abschalten der Automatik beheben. Dank und Gru├č. Nerses

  15. Felix Wolf says:

    Vielen Dank bin fast verr├╝ckt geworden -.-

    Haha

    Super Erkl├Ąrung mit der Skalierung!!!!!!!!

  16. BunchOfSage says:

    Super wissenswerter Eintrag, hab viel dazugelernt und direkt als Bookmark gespeichert!

  17. Willimaa says:

    Hallo Daniel

    Bereits seit einiger Zeit ist es mir aufgefallen, dass die Schrift diverser Programme (Word, iTunes,…) auf einmal unscharf wird und erst erneut scharf wird, wenn ich mit dem Mauszeiger darauf halte. Anschliessend beim Wegfahren wird si wieder unscharf.
    Ich habe Windows 8.1 installiert und hab bereits das mit der 100% Skalierung, sowie das mit der Kompatibilit├Ątseinstellung (Skalierung bei hohem DPI-Wert deaktivieren) versucht und bisher noch auf kein besseres Ergebnis gekommen.
    Bitte um Hilfe, bin beinahe am verzweifeln. >.<

    Besten Dank im Voraus

    Mit freundlichen Gr├╝ssen

  18. Prana Cale says:

    Das PROBLEM ist Microsoft, anscheinend hat diese Bande noch immer nicht verstanden wie man richtig skaliert. Das Problem wird noch eine weile bestehen, vielleicht f├╝r immer … facepalm … dabei hatte MUI auf dem Amiga 1992 schon dies schon perfekt gemacht…

  19. Johannes says:

    Klasse Tipp!
    Hatte mich schon Monate ge├Ąrgert, dass einige Programme (besonders Open Office) auf meinem neuen PC so bescheiden dargestellt werden.