Windows display scaling blurring legacy programs

Windows display scaling is great for programs that support it. But certainly not for all.

Especially legacy apps get blurred, so use integer only, if possible!

 

The problem is in the very nature of windows history, as it was coded for pixels, and not vectorization.

It made perfect sense back then, to make things snappier. But does not work well on modern high DPI displays.

Newer apps (that are coded correctly!!), can handle the scaling, and thus display their content nice and crisp.

But even a standard C# forms app of newest Visual studio displays the problem per default as can be seen above, for non-integer scaling.
HOWEVER this is often quite easy to make a WinForm app Per Monitor DPI Aware in minutes!! See this post.

Here is a more complete example with the offered scaling on a QFHD/UHD (3840 x 2160) monitor, from 100% to 350%.
Click to enlarge, and make sure you browser shows the 1520 x 920 in 100% (and you see it on an unscaled display) to see the problem.

You will note that each windows title-line is scaled correctly by Windows for all, but the interior of the form looks horribly blurry for all but the integer (100, 200 & 300%) ones.
For the integer ones each pixel is scaled to 2×2 or 3×3, and this leaves a sharp though pixelated picture that looks exactly as it would on a coarser monitor.
That is if you scale a QFHD/UHD (3840 x 2160) monitor to 300%, the image would look exactly identical to a HD (1280 x 720)  monitor of the same size.
And if to 200 exactly like FHD monnitor of the same size.

True DPI-aware apps would still look much better than even the integer scaled ones. (click to enlarge, to see how much sharper the text is)

 

Apart from that, scaling used with multiple monitor with different scaling, has some odd issues when you move a window, as the WHOLE window is scaled by the factor of the screen where the majority of the window currently is. This is not a big issue, as you seldom want a program-windows to span multiple monitors, especially if they are not more or less identical.

Have a look at these two [click to enlarge to see the real difference], where I have moved the app a bit down (marked the imaginary border by a thin red line), and from being clear and crisp, the font is now woolly as the app gets scaled.

 

I have a 40″ QFHD (111DPI) monitor behind and above my 14″ QHD (210DPI) laptop (Thinkpad X1 Yoga)

With the secondary monitor roughly 1.5 times as far away from my eyes as the laptop, 125% is pretty close to making things having the same ‘apparent size’ (the angle), since (100%/111dpi) / (125%/210dpi)=1.51