Freigeben über


DPI Aware Managed Applications on Windows 8.1

A common observation post upgrade to Windows 8.1 is that certain applications look a bit ‘blurry’ compared to the way they looked in Windows 8. Our developer specialist from Malaysia, Jonathan Yong, has analyzed this issue in depth and presents a great discussion on this topic. Read on!


Auto Scaling in Windows 8.1

Windows 8.1 has DPI auto scaling which make some of the applications that is not DPI aware look a little fuzzy and blurry. Below is an example of how one of my managed application looks after I upgrade to Windows 8.1

Managed application looking 'blurry' after Windows 8.1

You can probably see it is a bit blurred (and it’s not just due to the screenshot Smile)

‘Quick Fix’

A quick fix to this is to disable the DPI scaling. To do this, right click on the Executable and select the Compatibility tab, then tick the Disable display scaling on high DPI settings.

DPI setting in program properties

This is how it look before and after I turn on the checkbox:

before and after disabling dpi scaling

Manifest based configuration

If you have the source code to the application, you can actually declare your application as DPI-Aware in the Visual Studio project. To do this, follow the steps from this URL. Although the article mention VS2008, it also apply to application developed in VS2012. This is how the app.manifest for my app looks like after I done the steps in the article:

setting the DPI aware value through application manifest

After I put in the manifest, recompile the app and everything look great.

‘Let me choose one scaling level’ setting

If you go to your Control Panel’s Screen Resolution and select the Make text and other items larger or smaller, you will go to the Display Properties.

system wide scaling level setting

system wide scaling level setting scale options

There is a checkbox ‘Let me choose one scaling level for all my displays’ which if you are unfamiliar, you might think this the one setting that disable the DPI scaling for all applications. It is not you expect. What this setting does is to fix the DPI scale across all your display devices. As you attach different display device with different resolution to your system, the DPI scale is fixed and the text font displayed will look either bigger or smaller than it should which some times look ugly. Most of the time, you should just leave the setting uncheck. When you attach a display device to your system, Windows will query the device for its resolution and adjust the DPI scale accordingly.

If you have a very large display device with very high resolution, typically the text font will looks very small to you. In this case, you should then consider change the DPI scale to a larger percentage so that the text on the screen will appear larger and easier to read. Another situation where I use a larger DPI scale is on my tablet which has a high resolution on a smaller screen. I change to a larger DPI scale so that text and objects looks bigger and easier for me to navigate and select using touch gesture.

For more information on how to disable DPI scaling across your enterprise, see the follow-up post Disabling DPI Scaling on Windows 8.1 - The Enterprise Way on the MSPFE TechNet Blog.


Original content from Jonathan Yong. Posted by MSPFE Editor Arvind Shyamsundar.