Поделиться через


ScaleControl вызывается только при необходимости

Масштабирование обычно требуется только в том случае, если приложение работает в SystemAware режиме или PerMonitorV2 режиме, а монитор имеет пользовательские параметры DPI, отличающиеся от компьютера, в котором было разработано приложение. В этих сценариях среда выполнения Windows Forms вычисляет коэффициент масштабирования на основе пользовательских параметров DPI монитора и вызовов ScaleControl(SizeF, BoundsSpecified) с новым коэффициентом масштабирования. Для повышения производительности теперь вызывается только в том случае, ScaleControl если вычисляемый коэффициент масштабирования отличается от 1,0F (то есть требуется масштабирование). Это изменение может нарушить приложение, если оно переопределяется ScaleControl и выполняет любые пользовательские действия в переопределении.

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

Обслуживание .NET 6.0.101

Старое поведение

В выпуске общедоступной версии .NET 6 и более ранних версиях виртуальный общедоступный API ScaleControl(SizeF, BoundsSpecified) вызывается каждый раз, когда PerformAutoScale() он вызывается в элементе управления контейнерами приложения. То есть метод вызывается каждый раз при изменении макета или шрифта независимо от необходимости масштабирования.

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

Начиная с выпусков обслуживания .NET 6 вызывается только в том случае, ScaleControl(SizeF, BoundsSpecified) если требуется масштабировать форму или элемент управления. Среда выполнения Windows Forms вычисляет коэффициент масштабирования на основе пользовательских параметров DPI монитора и параметров DPI монитора, на котором было разработано приложение. ScaleControl(SizeF, BoundsSpecified) вызывается только в том случае, если коэффициент масштабирования указывает, что требуется масштабирование.

Категория изменения

Это изменение влияет на совместимость исходного кода.

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

Это изменение было сделано для повышения производительности и предотвращения ненужных макетов.

Проверьте, выполняет ли код какие-либо пользовательские немасштабируемые действия в этих переопределяемых методах.

Затронутые API