Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The silver lining: As more of these kinds of DPI scaling issues crop up, hopefully developers will starting taking accessibility seriously, in order to make their applications usable for people with visual (and other) impairments.


I absolutely agree with you and look forward to 4k displays becoming mainstream and forcing developers to support high dpi.

I think its inexcusable that a bare bones winforms application doesn't scale correctly, and that I'd never know about this issue without a high dpi device. This is one place where Microsoft has total control and they should be ensuring that everything built with visual studio works on their devices out of the box. Hopefully VS2013 will address this.


I think it's very unlikely that WinForms, a GDI+ wrapper, is going to get a major, incompatible, rendering change in a minor point release of the .NET Framework. GDI uses actual pixels as measurements, so being DPI aware is much more painful. Seeing as GDI is not the future, it's unlikely this will ever change.

It's probably not even theoretically possible to fix it, without having a list of programs and their DPI behaviour, then keep that list updated somehow and patch programs' rendering. Or MS would need to add another flag like "no, I'm really DPI aware, promise!" for new programs to opt-in, then continue to scale older programs.

WPF, DirectWrite, WinRT - apps based on those APIs should have far less problems with scaling.


Microsoft has addressed it since WinForms 1.0, except that it's unfortunately not automatic. You need to include a simple application manifest that enables the dpiAware flag, as described here: http://msdn.microsoft.com/en-us/library/dd464660%28v=VS.85%2...

That article stops short of Windows 8.1 which provides new multi-monitor options. Here's the latest manifest overview: http://blogs.msdn.com/b/chuckw/archive/2013/09/10/manifest-m...


Further clarification: The manifest is the same you'd use for native applications. Microsoft automatically enables DPI awareness for WPF because that framework scales all coordinates automatically with DPI settings. WinForms doesn't do that. It requires extra code for proper DPI scaling, hence you need to manually apply the manifest if you have done that extra work. (Auto-generated Visual Studio projects might automatically provide both the necessary rigging and manifest, not sure.)




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: