窗体根据 AutoScaleMode 缩放

PerMonitorV2 模式应用中,Windows 窗体一直在使用 Windows 为顶级窗口提供的线性大小(也称为 DPI 缩放大小),而不考虑 AutoScaleMode。 使用 AutoScaleMode.Font 缩放模式时,此实现存在问题,其中 Form 缩放应该是非线性的。 子控件的缩放是非线性的,并取决于分配给 Form 或子控件的字体。

此更改为顶级WM_GETDPISCALEDSIZE对象启用Form消息处理。 它利用 WM_GETDPISCALEDSIZE 让 Windows 知道 Form 可能需要非线性大小,具体取决于 AutoScaleMode

已引入的版本

.NET 8 预览版 1

以前的行为

以前,在 PerMonitorV2 模式应用中,顶级窗口由 Windows 缩放,而忽略了 WinForms 应用程序中指定的 AutoScaleMode。 此实现导致对象与其子控件之间的 Form 缩放不一致。

新行为

PerMonitorV2 模式应用中,顶级窗口(如窗体)根据 AutoScaleMode 缩放。 此实现可确保顶级窗口缩放与其子控件保持一致。

更改类别

此更改是 行为变化

更改原因

此更改是为了在 PerMonitorV2 模式下改进 Windows 窗体应用的高 DPI 体验。

无需执行任何操作。

受影响的 API

另请参阅