I moduli di primo livello ridimensionano le dimensioni minime e massime fino a DPI
I moduli di primo livello in Windows Forms ora ridimensionano i valori MinimumSize e MaximumSize in base ai punti per pollice (DPI) del monitor durante l'esecuzione in modalità HighDpiMode.PerMonitorV2.
Versione introdotta
.NET 8 Anteprima 1
Comportamento precedente
In .NET 8 i valori MinimumSize e MaximumSize per i moduli di primo livello sono rimasti costanti indipendentemente dalla modalità DPI dell'applicazione e dal valore DPI del monitor in cui viene eseguito il rendering del modulo. Ciò ha talvolta comportato limitazioni di ridimensionamento del modulo di primo livello.
È anche possibile acconsentire esplicitamente a questo comportamento in .NET 7. Per acconsentire esplicitamente, impostare l'opzione di configurazione di runtime System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi
descritta nella sezione azione consigliata.
Nuovo comportamento
A partire da .NET 8, i moduli di primo livello ridimensionano i valori di MinimumSize e MaximumSize in base alla DPI del monitor durante l'esecuzione in modalità HighDpiMode.PerMonitorV2. Il comportamento dell'app potrebbe cambiare nei modi seguenti:
- Le dipendenze in fase di esecuzione potrebbero essere influenzate quando cambiano le dimensioni minime e massime del modulo.
- Potrebbero essere generati nuovi eventi MinimumSizeChanged e MaximumSizeChanged.
- Le dimensioni del modulo ridimensionate hanno ora nuovi valori di vincolo per le dimensioni minime e massime.
Categoria di modifiche
Questa è una modifica funzionale.
Motivo della modifica
Questa modifica fa parte di uno sforzo più ampio per migliorare l'esperienza utente di Windows Form su monitor DPI elevati. Consente agli sviluppatori di impostare dimensioni minime e massime per i moduli di primo livello senza dover prendere in considerazione la DPI del monitor.
Azione consigliata
Se il nuovo comportamento è problematico per l'utente, è possibile rifiutare esplicitamente l'impostazione System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi
su false
nel file di runtimeconfig.json.
File modello runtimeconfig.template.json:
{
"configProperties": {
"System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
}
}
File di output [appname].runtimeconfig.json:
{
"runtimeOptions": {
"configProperties": {
"System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
}
}
}
API interessate
N/D