Escalado de los valores tamaño y mínimo según el PPP de los formularios de nivel superior
Los formularios de nivel superior de Windows Forms ahora escalan sus valores MinimumSize y MaximumSize según los puntos por pulgada (PPP) del monitor cuando se ejecutan en modo HighDpiMode.PerMonitorV2.
Versión introducida
.NET 8 Preview 1
Comportamiento anterior
En .NET 8, los valores MinimumSize y MaximumSize de los formularios de nivel superior permanecen constantes independientemente del modo PPP de la aplicación y del PPP del monitor donde se representa el formulario. Esto a veces daba lugar a limitaciones de escalado del formulario de nivel superior.
También puede aceptar este comportamiento en .NET 7. Para optar por esto, establezca la opción de configuración del runtime System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi
descrita en la sección Acción recomendada.
Comportamiento nuevo
A partir de .NET 8, los formularios de nivel superior escalan sus valores MinimumSize y MaximumSize según el PPP del monitor cuando se ejecutan en modo HighDpiMode.PerMonitorV2. El comportamiento de la aplicación puede cambiar de las maneras siguientes:
- Las dependencias en tiempo de ejecución pueden verse afectadas cuando cambia el tamaño mínimo y máximo del formulario.
- Es posible que se generen eventos MinimumSizeChanged y MaximumSizeChanged nuevos.
- El tamaño del formulario escalado ahora tiene nuevos valores de restricción para los tamaños mínimo y máximo.
Cambio de categoría
Este es un cambio de comportamiento.
Motivo del cambio
Este cambio forma parte de un esfuerzo más amplio para mejorar la experiencia del usuario de Windows Forms en monitores con PPP elevados. Permite a los desarrolladores establecer tamaños mínimos y máximos para formularios de nivel superior sin necesidad de tener en cuenta los PPP del monitor.
Acción recomendada
Si el comportamiento nuevo le supone un problema, puede optar por no usarlo; para ello, establezca System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi
en false
en el archivo runtimeconfig.json.
Archivo de plantilla runtimeconfig.template.json:
{
"configProperties": {
"System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
}
}
Archivo de salida [appname].runtimeconfig.json:
{
"runtimeOptions": {
"configProperties": {
"System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
}
}
}
API afectadas
N/D