旧版应用程序和缩放 Windows 10

Legacy app and scaling in Windows 10

我们有一个基于 Microsoft Access 的非常古老的应用程序。 UI部分仍然是Microsoft Access,其他部分使用WinForms,最新的部分使用WPF(试图逐步摆脱旧部分)。

我们在 Windows 10 和高 DPI 显示器中发现了一个奇怪的缩放问题,现在我正在寻找解决此问题的方法,最好是不涉及更改旧 UI 的方法。

为了能够在这个高 DPI 显示器上工作,Windows 的缩放比例应该设置为 200%。

这就是问题所在:当用户登录并将缩放设置为 200% 时,启动我们的应用程序会导致字符串使用对于 space 字符串来说太大的字体。它看起来像Windows 增加了字符串的字体大小,但没有增加包含字符串的控件的尺寸。更改 Windows 的缩放比例不能解决问题,更改缩放比例后重新启动我们的应用程序也不能解决问题。

尽管...当用户登录时将比例设置为 100%,一切都很好,即使之后更改比例或重新启动应用程序也是如此。

但我们不能也不会告诉我们的用户总是在注销时将 Windows 的缩放比例设置回 100%,并在登录时再次增加它。

没有其他方法可以解决这个问题吗?

感谢您的帮助(如果有的话)。

经过一些谷歌搜索,我至少找到了解决我的特殊问题的方法。

Microsoft Access 有一个 dpiAware 节点设置为 true 的清单文件。将其更改为 false 似乎告诉 Access 不要使用 Microsoft 的 "intelligent" 缩放,而是使用某种 "dumb" 缩放。这为我解决了整个问题。

据我所知,可以为任何可执行文件创建这样一个清单文件来解决旧应用程序的问题,但我没有尝试这样做,因为 Access 附带了一个已经存在的清单文件。