.: Daniel Melanchthon :.

Banging your head against a wall uses 150 Calories an hour.

Anwendungen auf Windows 8.1 unscharf/blurry

Anwendungen auf Windows 8.1 unscharf/blurry

  • Comments 17
  • Likes

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

Attachment: Screenshot.png
Comments
  • 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 www.heise.de/.../Aktueller-Internet-Explorer-11-kollidiert-mit-Google-und-Microsoft-Seiten-1982569.html dokumentiert ;-)

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

  • Hi Daniel,

    ich habe ein Notebook mit 1920x1080 und einen externen Monitor mit 1920x1200. 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

  • 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

  • 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. :)

  • Wir können ja hier weiter diskutieren. ;)

    www.mcseboard.de/.../195456-windows-81-ie11-skalierung

  • 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.

  • 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!!

  • 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]

  • @-.-: 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

  • 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... :)

  • 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

  • @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

  • 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 1680x1050

    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???

  • 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", 1920x1080, 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

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment