窗体根据 AutoScaleMode 缩放
在 PerMonitorV2 模式应用中,Windows 窗体一直在使用 Windows 为顶级窗口提供的线性大小(也称为 DPI 缩放大小),而不考虑 AutoScaleMode。 使用 AutoScaleMode.Font 缩放模式时,实现起来有问题,其中 Form 缩放应是非线性的。 子控件是以非线性形式缩放的,具体取决于分配给 Form 或子控件的字体。
此更改为顶级 Form 对象启用 WM_GETDPISCALEDSIZE
消息处理。 它利用 WM_GETDPISCALEDSIZE 让 Windows 知道 Form 可能需要非线性大小,具体取决于 AutoScaleMode。
引入的版本
.NET 8 预览版 1
旧行为
以前,在 PerMonitorV2 模式应用中,顶级窗口由 Windows 缩放,而忽略了 WinForms 应用程序中指定的 AutoScaleMode。 此实现导致 Form 对象与其子控件之间的缩放不一致。
新行为
在 PerMonitorV2 模式应用中,顶级窗口(如窗体)根据 AutoScaleMode 缩放。 此实现可确保顶级窗口与其子控件一致缩放。
更改类别
此更改为行为变更。
更改原因
进行此更改是为了改善 PerMonitorV2 模式中 Windows 窗体应用的高 DPI 体验。
建议的操作
不需要执行任何操作。
受影响的 API
不可用