Udostępnij za pośrednictwem


Funkcja ScaleControl wywoływana tylko w razie potrzeby

Skalowanie jest zwykle wymagane tylko wtedy, gdy aplikacja działa w SystemAware trybie lub PerMonitorV2 w trybie, a monitor ma niestandardowe ustawienia DPI, które różnią się od maszyny, na której została zaprojektowana aplikacja. W tych scenariuszach środowisko uruchomieniowe windows Forms oblicza współczynnik skalowania na podstawie niestandardowych ustawień DPI monitora i wywołuje ScaleControl(SizeF, BoundsSpecified) nowy współczynnik skalowania. Aby zwiększyć wydajność, jest teraz wywoływana tylko wtedy, ScaleControl gdy obliczony współczynnik skalowania jest czymś innym niż 1,0F (czyli jest wymagane skalowanie). Ta zmiana może uszkodzić aplikację, jeśli zastąpi ScaleControl ją i wykona dowolne akcje niestandardowe w zastąpieniu.

Wprowadzona wersja

Obsługa platformy .NET 6.0.101

Stare zachowanie

W wersji ogólnodostępnej platformy .NET 6 i starszych wersjach wirtualny publiczny interfejs API ScaleControl(SizeF, BoundsSpecified) był wywoływany za każdym razem, gdy PerformAutoScale() był wywoływany w kontroli kontenera aplikacji. Oznacza to, że metoda była wywoływana za każdym razem, gdy istnieje zmiana układu lub czcionki, niezależnie od tego, czy skalowanie było potrzebne.

Nowe zachowanie

Począwszy od wersji obsługi platformy .NET 6, jest wywoływana tylko wtedy, ScaleControl(SizeF, BoundsSpecified) gdy istnieje potrzeba skalowania formularza lub kontrolki. Środowisko uruchomieniowe Windows Forms oblicza współczynnik skalowania na podstawie niestandardowych ustawień DPI monitora i ustawień DPI monitora, na którym została zaprojektowana aplikacja. ScaleControl(SizeF, BoundsSpecified) jest wywoływana tylko wtedy, gdy współczynnik skalowania wskazuje, że skalowanie jest wymagane.

Kategoria zmiany

Ta zmiana ma wpływ na zgodność ze źródłem.

Przyczyna wprowadzenia zmiany

Ta zmiana została wprowadzona w celu zwiększenia wydajności i uniknięcia niepotrzebnych układów.

Sprawdź, czy kod wykonuje jakiekolwiek niestandardowe, nieskalowanie akcji w tych metodach, które można zastąpić.

Dotyczy interfejsów API