I just upgraded to a 4k monitor, and supposedly Visual Studio should be able to handle a high dpi monitor just fine. But it's not working for me and I'm not sure why. I have this same problem in Visual Studio 2015 and 2017.

In the screenshot below (taken from a zoomed-in screenshot in Paint.Net so the individual pixel divisions are visible), I have overlapped the Visual Studio window with Chrome, and you can see that the ClearType text is rendered at lower resolution and then scaled with Visual Studio, resulting in a very ugly doubling of the colored pixels, whereas in Chrome, the text looks great.

This makes the code extremely hard to read/edit in Visual Studio, as the text all looks blurry. I have two monitors hooked up, one 4k with the desktop scaling set to 200% and a regular 1080p monitor with desktop scaling set at 100%. I've tried playing around with a few settings, such as cranking up the scaling on the 1080p monitor or changing which one was primary. None of these settings made any difference. Reboot also didn't help.

Since there aren't many levers when it comes this sort of thing I'm at a loss for where else I should be looking at to fix this. Any suggestions on how this could be fixed?

enter image description here


Solution 1:

Unfortunately Visual Studio is still not per-monitor DPI aware. If you disconnect second monitor everything should work fine. The only way is to find some DPI that will fit for both monitors, but as you have 4K and 1080p it can be very difficult.

I have similar problem (not 4K, but still running 200% DPI) and at the end I'm using VS only on one monitor.

It is pity that Microsoft didn't solve this problem even in VS2017.

Solution 2:

As Eric mentioned, the best solution is to set the monitor that you're going to have VS on as primary, and then log out and back in. It will then look "right" on that monitor and fuzzy on the others. I agree that it's ridiculous that they haven't fixed this yet.

Update: right after I typed that I updated VS 2017 to 15.3.3, and it appears to be fixed! Looks fine on all monitors now.

Update2: Never mind, it still looks bad if I set a different scaling amount as my primary.