15

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

6 Answers 6

8

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.

3
  • 1
    They have to solve it for Windows before they can even attempt to do it for their own programs. They made significant progress towards that goal with Windows 10 1703. I would even suggest to the author to see if running Windows 10 1703 makes a difference.
    – Ramhound
    Commented Apr 10, 2017 at 14:17
  • 11
    I found an alternate solution - make the 4k monitor the primary monitor and reboot. Visual Studio seems to take the dpi resolution of whatever the primary monitor is at boot up (changing the setting and restarting VS didn't seem to help). Windows does seem to still have some significant deficiencies when using monitors with mixed dpi settings. Commented Apr 11, 2017 at 2:54
  • VS 2017 15.9.6 - the problem still exists. I have two monitors (main 1080p 125% and second 1080p 100%) and on the second monitor all text and icons are blurry.
    – Mikhail
    Commented Jan 27, 2019 at 12:43
9

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.

1
  • This worked perfectly for me. My target monitor is WQHD at 100%, and my main monitor was the Surface Book screen (~UHD) at 150% and VS was blurry. The funny thing is, VS Code did not have the same issue... Commented Mar 2, 2018 at 18:11
3

Another option: You can add a registry entry to make Visual Studio DPI unaware.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\devenv.exe]
"dpiAwareness"=dword:00000000

The above way is kind of “undocumented”. I did some research but couldn’t find any proper documentation about the dpiAwareness REG_DWORD in the Image File Execution Options key. Setting the REG_DWORD to 1 will make Visual Studio DPI aware again (requires a restart of Visual Studio).

Note: when Visual Studio is DPI “unaware” and display scaling is in effect, fonts and icons may look blurry but the WinForms designer will have no unwanted side-effects.

Reference: https://code4ward.net/2016/11/29/visual-studio-winforms-designer-on-highdpi/

1

The free Visual Studio Text Sharp extension adds a dialog to configure the type of text smoothing used in the Visual Studio editor (and, optionally, the rest of the Visual Studio chrome), with a variety of options to choose from.

For some reason only Consolas renders correctly in Visual Studio by default; all other fonts (both hinted and unhinted) are rendered horribly aliased. Text Sharp fixes that.

I am not but a happy user, with no affiliation.

1
  • This solution worked great!
    – Anders
    Commented May 28, 2021 at 10:09
1

VS2017 and below are not per-monitor DPI aware. However, I was able to get VS2017 15.9 to work by setting my 4K monitor as primary and restarting my machine (also running Win 10 v1903, not sure if that made a difference). I did NOT change any compatibility settings on devenv.exe to get this work. VS2017 is NOT blurry on my 4K monitor.

I'm still (somewhat) broken though, because I RDP to my 4K desktop from a non-4K device. THAT problem is apparently truly fixed in VS2019:

If you have used Visual Studio across monitors with different scale factors or remoted into a machine with a different configuration than the host device, you might have noticed Visual Studio’s fonts and icons can become blurry and in some cases, even render content incorrectly. That’s because versions prior to Visual Studio 2019 were set to render as a system scaled application, rather than a per-monitor DPI aware application (PMA).

https://developercommunity.visualstudio.com/content/problem/25097/font-is-blurry-due-to-not-supporting-mixed-mode-dp.html

https://devblogs.microsoft.com/visualstudio/a-better-multi-monitor-experience-with-visual-studio-2019/

Here's my screenshot (Zoomed in with MS Paint) enter image description here

0

I fixed doing this: a) Closed Visual studio 2019 b) removed HDMI cable c) Opened visual studio 2019 opened my web app focused on my laptop monitor d) Reconnected HDMI cable e) Move Visual Studio to the large monitor

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .