【发布时间】:2020-01-22 05:46:12
【问题描述】:
我看到了这篇关于如何在 .NET Framework 4.7 上运行的 Windows 窗体应用程序中支持高 DPI 的 Microsoft 文章。
https://docs.microsoft.com/en-us/dotnet/framework/winforms/high-dpi-support-in-windows-forms
我按照这些说明进行操作,它们确实帮助我解决了模糊问题,但我仍然无法找到修复控件移动/移动的方法。
我尝试将所有控件放在 TableLayoutPanel 中并调整锚点,但没有解决问题。
那么,有没有办法解决这个问题?
PS:我使用的是 .NET Framework 4.7.2 和 Windows 10 Pro 1909
【问题讨论】:
-
您的表单可能设置为自动缩放为字体,并且您的某些控件从父级继承字体。当然,您当前的布局是未知的,并且您没有提及您在配置文件中所做的更改(和/或您使用的 Win32 功能)以符合 High-Dpi/DpiAwareness 要求,但测试应用程序设置
AutoScaleMode = Dpi和还在每个控件中显式设置字体(因此即使字体与父级相同,它也不会继承它)。请注意,用户控件有自己的AutoscaleMode。 -
@Jimi 我所做的是在清单中启用 Windows 10 兼容性并将 DpiAwareness 设置为 PerMonitorV2,这有助于解决模糊问题。无论如何,设置 AutoScaleMode = Dpi 有助于解决控件转移的问题。我不敢相信事情就这么简单。如果您可以将其添加为答案,我会接受。非常感谢。