Condividi tramite


ScaleControl chiamato solo quando necessario

Il ridimensionamento è in genere necessario solo quando un'applicazione è in esecuzione in modalità SystemAware o PerMonitorV2 e il monitor ha impostazioni DPI personalizzate che differiscono dal computer in cui è stata progettata l'app. In questi scenari, il runtime di Windows Forms calcola il fattore di scala, in base alle impostazioni DPI personalizzate del monitoraggio e chiama ScaleControl(SizeF, BoundsSpecified) con il nuovo fattore di scala. Per migliorare le prestazioni, ScaleControl viene ora chiamato solo quando il fattore di scala calcolato è diverso da 1,0F (ovvero, è necessario ridimensionare). Questa modifica può interrompere l'app se esegue l'override di ScaleControl ed esegue qualsiasi azione personalizzata nell'override.

Versione di introduzione

Manutenzione di .NET 6 6.0.101

Comportamento precedente

Nella versione GA di .NET 6 e nelle versioni precedenti, ScaleControl(SizeF, BoundsSpecified) dell'API pubblica virtuale è stata chiamata ogni volta che PerformAutoScale() è stato chiamato sul controllo del contenitore dell'applicazione. Ovvero, il metodo è stato chiamato ogni volta che si è verificata una modifica del layout o del tipo di carattere, indipendentemente dal fatto che il ridimensionamento fosse necessario.

Nuovo comportamento

A partire dalle versioni di manutenzione di .NET 6, ScaleControl(SizeF, BoundsSpecified) viene chiamato solo quando è necessario ridimensionare la maschera o il controllo. Il runtime di Windows Form calcola il fattore di scala in base alle impostazioni DPI personalizzate del monitoraggio e alle impostazioni DPI del monitor su cui è stata progettata l'applicazione. ScaleControl(SizeF, BoundsSpecified) viene chiamato solo se il fattore di scala indica che è necessaria la scalabilità.

Categoria di modifiche

Questa modifica influisce sulla compatibilità dell'origine.

Motivo della modifica

Questa modifica è stata apportata per migliorare le prestazioni ed evitare layout non necessari.

Controllare se il codice esegue azioni personalizzate e non di ridimensionamento in questi metodi sostituibili.

API interessate