ScaleControl solo se llama cuando es necesario

El escalado suele ser necesario solo cuando una aplicación se ejecuta en los modos SystemAware o PerMonitorV2 y el monitor tiene una configuración de PPP personalizada que difiere de la máquina en la que se diseñó la aplicación. En estos escenarios, el entorno de ejecución de Windows Forms calcula el factor de escala, en función de la configuración de PPP personalizada del monitor y llama a ScaleControl(SizeF, BoundsSpecified) con el nuevo factor de escala. Para mejorar el rendimiento, ahora solo se llama a ScaleControl cuando el factor de escala calculado es un valor distinto de 1.0F (es decir, el escalado es necesario). Este cambio puede interrumpir la aplicación si invalida ScaleControl y realiza cualquier acción personalizada en la invalidación.

Versión introducida

Mantenimiento de .NET 6 6.0.101

Comportamiento anterior

En la versión de disponibilidad general de .NET 6 y versiones anteriores, se llamaba a la API pública virtual ScaleControl(SizeF, BoundsSpecified)cada vez que se llamaba a PerformAutoScale() en el control contenedor de la aplicación. Es decir, se llamaba al método cada vez que había un cambio de diseño o fuente, independientemente de si el escalado era necesario.

Comportamiento nuevo

A partir de las versiones de mantenimiento de .NET 6, solo se llama a ScaleControl(SizeF, BoundsSpecified) cuando es necesario escalar el formulario o control. El entorno de ejecución de Windows Forms calcula el factor de escala en función de la configuración de PPP personalizada del monitor y la configuración de PPP del monitor en el que se diseñó la aplicación. Solo se llama a ScaleControl(SizeF, BoundsSpecified) si el factor de escala indica que el escalado es necesario.

Cambio de categoría

Este cambio afecta a la compatibilidad de origen.

Motivo del cambio

Este cambio se realizó para mejorar el rendimiento y evitar diseños innecesarios.

Compruebe si el código realiza cualquier acción personalizada sin escala en estos métodos reemplazables.

API afectadas