Sdílet prostřednictvím


ScaleControl volal pouze v případě potřeby

Škálování se obvykle vyžaduje jenom v případě, že je aplikace spuštěná v režimu nebo PerMonitorV2 v SystemAware režimu a monitor má vlastní nastavení DPI, které se liší od počítače, na kterém byla aplikace navržena. V těchto scénářích model Windows Forms modul runtime vypočítá faktor škálování na základě vlastního nastavení DPI monitoru a volání ScaleControl(SizeF, BoundsSpecified) s novým faktorem škálování. Pro zvýšení výkonu se teď volá pouze v případě, ScaleControl že počítaný koeficient je něco jiného než 1,0F (tj. škálování je potřeba). Tato změna může aplikaci přerušit, pokud přepíše ScaleControl a provede jakékoli vlastní akce v přepsání.

Zavedená verze

Údržba .NET 6 6.0.101

Staré chování

Ve verzi GA .NET 6 a starších verzích se virtuální veřejné rozhraní API ScaleControl(SizeF, BoundsSpecified) volalo při PerformAutoScale() každém volání na řízení kontejneru aplikace. To znamená, že metoda byla volána pokaždé, když dojde ke změně rozložení nebo písma bez ohledu na to, jestli bylo potřeba škálování.

Nové chování

Počínaje servisními verzemi .NET 6 se volá pouze v případě, ScaleControl(SizeF, BoundsSpecified) že je potřeba škálovat formulář nebo ovládací prvek. Modul runtime model Windows Forms vypočítá měřítko na základě vlastního nastavení DPI monitoru a nastavení DPI monitoru, na kterém byla aplikace navržena. ScaleControl(SizeF, BoundsSpecified) je volána pouze v případě, že faktor škálování indikuje, že škálování je povinné.

Kategorie změny

Tato změna má vliv na kompatibilitu zdroje.

Důvod změny

Tato změna byla provedena kvůli zlepšení výkonu a zabránění zbytečným rozložením.

Zkontrolujte, jestli váš kód v těchto přepisovatelných metodách provádí nějaké vlastní akce bez škálování.

Ovlivněná rozhraní API