Масштаб форм в соответствии с AutoScaleMode

В приложениях режима PerMonitorV2 Windows Forms использует линейные размеры (также известные как масштабируемые размеры DPI), предоставляемые Windows для окон верхнего уровня, независимо от параметра AutoScaleMode. Эта реализация проблематична при использовании AutoScaleMode.Font режима масштабирования, где Form масштабирование должно быть нелинейным. Дочерние элементы управления масштабируются нелинейно и зависят от шрифта, назначенного Form или дочерним элементам управления.

Это изменение позволяет WM_GETDPISCALEDSIZE обрабатывать сообщения для объектов верхнего уровня Form . Он использует WM_GETDPISCALEDSIZE, чтобы сообщить Windows, что Form может нуждаться в нелинейных размерах в зависимости от AutoScaleMode.

Представленная версия

.NET 8( предварительная версия 1)

Предыдущее поведение

Ранее в приложениях, работающих в PerMonitorV2-режиме, Windows масштабировало окна верхнего уровня и игнорировало AutoScaleMode, как было указано в приложении WinForms. Эта реализация привела к несогласованности масштабирования между Form объектами и их дочерними элементами управления.

Новое поведение

В приложениях в PerMonitorV2режиме окна верхнего уровня (например , Формы) масштабируются в соответствии с AutoScaleMode. Эта реализация обеспечивает согласованное масштабирование окон верхнего уровня с дочерними элементами управления.

Изменение категории

Это изменение поведения.

Причина изменения

Это изменение было сделано для улучшения возможностей высокой DPI для приложений Windows Forms в PerMonitorV2 режиме.

Никаких действий не требуется.

Затронутые API

Не применимо

См. также