我们有一个非常古老的应用程序,它基于Microsoft Access。 UI的部分仍然是Microsoft Access,其他部分使用WinForms,最新的部分使用WPF(试图逐步摆脱旧部分)。
我们在Windows 10和高DPI监视器中发现了一个奇怪的扩展问题,现在我正在寻找解决此问题的方法,最好不要更改旧的UI。
为了能够使用这款高DPI显示器,Windows的缩放率应设置为200%。
问题在于:当用户登录时,缩放设置为200%,启动我们的应用程序会导致字符串使用太大的字体来放置字符串所在的空间。看起来Windows增加了字符串的字体大小,但不包含字符串的控件的尺寸。更改Windows的缩放并不能解决问题,在更改缩放后重新启动应用程序并不能解决问题。
虽然...当用户使用缩放设置为100%登录时,即使之后更改缩放或重新启动应用程序,一切也都可以。
但我们无法告诉我们的用户在注销时始终将Windows的缩放率设置回100%,并在登录时再次增加。
还有其他方法可以解决这个问题吗?
感谢您的帮助(如果有的话)。
答案 0 :(得分:0)
经过一段谷歌搜索后,我找到了一个解决方案,至少是因为我的特殊问题。
Microsoft Access有一个清单文件,其dpiAware
节点设置为true
。将其更改为false
似乎告诉Access不要使用Microsoft" smart"缩放并使用某种" dumb"缩放而不是。这为我解决了整个问题。
据我所知,可以为任何可执行文件创建这样的清单文件来解决旧应用程序的问题,但我没有尝试过,因为Access附带了一个已经存在的清单文件。