C# 如何解决控制权在高DPI上转移的问题?

C# 如何解决控制权在高DPI上转移的问题?,c#,.net,winforms,C#,.net,Winforms,我偶然看到了这篇关于如何在运行在.NET Framework 4.7上的Windows窗体应用程序中支持高DPI的Microsoft文章 我遵循了这些说明,它们确实帮助我解决了模糊问题,但我仍然无法找到一种方法来解决控件的移动/移动问题 我尝试将所有控件放置在TableLayoutPanel中并调整锚定,但没有解决问题 那么,有没有办法解决这个问题 PS:我正在使用.NET Framework 4.7.2和Windows 10 Pro 1909设置AutoScaleMode=Dpi为我解决了这

我偶然看到了这篇关于如何在运行在.NET Framework 4.7上的Windows窗体应用程序中支持高DPI的Microsoft文章

我遵循了这些说明,它们确实帮助我解决了模糊问题,但我仍然无法找到一种方法来解决控件的移动/移动问题

我尝试将所有控件放置在TableLayoutPanel中并调整锚定,但没有解决问题

那么,有没有办法解决这个问题


PS:我正在使用.NET Framework 4.7.2和Windows 10 Pro 1909设置
AutoScaleMode=Dpi
为我解决了这个问题。

多亏了

,您的表单可能被设置为自动缩放到字体,并且您的一些控件从父控件继承了字体。当然,您当前的布局是未知的,您没有提到您在配置文件中更改了哪些内容(和/或您使用了哪些Win32函数)以符合高Dpi/DpiAwareness要求,但测试应用程序设置
AutoScaleMode=Dpi
,并在每个控件中显式设置字体(因此,即使字体与父字体相同,它也不会继承它)。请注意,用户控件有自己的
AutoscaleMode
@Jimi。我所做的是在清单中启用Windows 10兼容性,并将DpiAwareness设置为PerMonitorV2,这有助于解决模糊问题。无论如何,设置AutoscaleMode=Dpi有助于解决控件移动的问题。我不敢相信这会这么简单。如果您可以将其添加为ans嗯,我会接受的。非常感谢。