As of this moment, the answer is plain and simple - NO.
It is understandable to implement this feature is a bit tricky, but it's a long time since Windows 10 Beta and the launch. The following is credited to be a direct quote from Microsoft developers over the scaling issue sourced from here.
"Scaling is a complex problem for the open Windows ecosystem, which has to support devices ranging in size from roughly 4” to 84,” with densities ranging from 50DPI to 500DPI. In Windows 10 we took steps to consolidate and simplify our developer story for scaling and to improve the end-user visual experience. Stay tuned for future release!"
Now let's move to the official Microsoft help page, in this case their Technet magazine tip on how to Fix Scaling Issues on Windows 7
If you’ve enabled scaling and the text in an application is blurred or unreadable, you may want to disable display scaling for that particular application. To do this, right-click the application’s shortcut and then click Properties. On the Compatibility tab, select Disable Display Scaling On High DPI Settings, and then click OK.
Alright, now we've seen the older help page, let's see Windows 10 version of fixing the scaling issues on their help page. I really want to quote the entire page here, it's just that hilarious, but I'll let you construe the entirety of it. I'll just quote Solution 2:
You can disable display scaling for an individual desktop app in Windows 10. Here’s how:
Step 1: Select the search box in the taskbar, enter run programs, and
then select Run programs made for previous versions of Windows in the
search results.
Step 2: In the Program Compatibility Troubleshooter, select Next.
Step 3: Select your program from the list, and then select Next.
Step 4: Select Troubleshoot program, select The program opens but
doesn’t display correctly, and then select Next.
Step 5: Select Program does not display properly when large scale
font settings are selected, and then select Next.
Step 6: Select Test the Program to open the app with the new
settings. If it works, select Next and save the settings. Otherwise,
select Cancel.
Unsurprisingly, all these steps ever achieve is to Disable Display Scaling On High DPI. The same which was mentioned earlier in the windows 7 solution.
So, it is now clear that there is no possibility to change scaling per application, unless it's developer implements it as a DPI-aware desktop or win32 application.
Since we have no official confirmation, it is not clear if this feature will be implemented within Windows in the foreseeable future.
Let's break out the big guns.
Download and install the Application Compatibility Toolkit. That includes a program called the Compatibility Administrator, which comes in two versions, a 32-bit one and a 64-bit one. Run the one with the same bitness as the application you want to whack.
Background: Many applications claim they support a certain feature but then mess up the implementation. Microsoft deals with this all the time, and they have created compatibility infrastructure to reuse fixes for common problems. These fixes are implemented as shims, intercepting calls to the Windows API. We will use a shim that effectively cancels the application's declaration of DPI awareness. Other shims do fancier/configurable things (see CorrectFilePaths
), while some just lie to the application about its environment (like ForceAdminAccess
).
At the bottom of the Compatibility Administrator's left pane, you'll see a new entry in Custom Databases. Right-click it, and choose Create New → Compatibility Mode. Name it something (I used DpiMisbehavior
). In the left list, find DPIUnaware
and click the >
button to enable it. Click OK once you've done that.
Right-click the custom database again and choose Create New → Application Fix. Fill out the program name and vendor (these doesn't matter too much) and select the main EXE of the application. (This is where the bitness of the Compatibility Administrator is important.) Press Next when you've done that.
In Additional compatibility modes, scroll down and find the compatibility mode you created a moment ago. Check its box. Do a test run if you want, then hit Next.
Now, strictly speaking, you didn't need to create a compatibility mode because you can apply specific fixes here. I had you do that in case you need to add additional fixes to that mode later so they'll apply to all apps that you put under that mode. So you can just hit Next without doing anything on the Compatibility Fixes step.
Matching information is used to identify what app a program (EXE) represents. (It would be rather unfortunate if fixes were applied to programs that don't need them.) All checked entries must match for a program to get the fix. The Compatibility Administrator pulled these criteria values out of the EXE you specified earlier. The defaults are fine, or you can change them if you feel strongly about such things. Hit Finish when satisfied.
Repeat the Application Fix creation stuff for every program that needs it. Then press Save in the toolbar. Give it any name you want; I used DPI Repair
. Then save it wherever in the file system you want. You can use Open toolbar item and select that file if you need to modify it in the future.
Finally, right-click the newly-named custom database, and choose Install.
Oh yeah.
If, in the future, you do need to modify the compatibility database, just open it up, make the appropriate changes, hit Save, then do Reinstall; it'll just go right over the old version. In fact, you can copy this database to another computer and use the Compatibility Administrator to install it there without having to recreate it.
Optional entertainment: Expand the Applications entry under System Database to see a list of programs Microsoft had to fix with this infrastructure. Clicking on a program's entry will show you what fixes and compatibility modes were applied. Under Compatibility Fixes, you can see a full list of what fixes your computer can use.
Best Answer
Dynamic scaling is only a new thing, Windows 7 let you set a global scaling factor (applies to all monitors) and this is what MOST programs still use. So when the program launches, it picks one scaling (probably from which-ever monitor Cortana is on) and it stays like that. so when you move it to the other screen, as you say - it crudely deforms the ui. This is because the program is not "aware" of the dynamic scaling, so it doesnt change, and therefor Windows wrecks it.
Solutions:
If you haven't already - update your computer to the Creator's update (v1703) just go to Windows update and click the text which says "get the update now instead". They have made a lot of work to make the scaling a bit better.
The link above has a screenshot of how you can toggle DPI-awareness support in the .exe's properties dialog. You will need to do this for each non-dpi-aware exe.
Set all monitors to the one scaling. This is personally what I do (100% scale across 3 monitors) - it's squinty, but there is less shenanigans with having to configure each program to different dpi-aware settings.
Of course, changing the MAIN monitor to the one you use the most, is the simplest solution. So now, non-scaling apps will initially scale to this main monitor, and you only get the blurriness when it is moved away again.