Udostępnij za pośrednictwem


Funkcja ScaleControl wywoływana tylko w razie potrzeby

Skalowanie jest zwykle wymagane tylko wtedy, gdy aplikacja działa w trybie SystemAware lub PerMonitorV2, a monitor ma niestandardowe ustawienia DPI, które różnią się od ustawień maszyny, na której zaprojektowano aplikację. W tych scenariuszach środowisko uruchomieniowe Windows Forms oblicza współczynnik skalowania na podstawie niestandardowych ustawień DPI monitora i wywołuje ScaleControl(SizeF, BoundsSpecified) z nowym współczynnikiem skalowania. Aby zwiększyć wydajność, funkcja ScaleControl jest teraz wywoływana tylko wtedy, gdy obliczony współczynnik skalowania różni się od 1,0F, co oznacza konieczność skalowania. Ta zmiana może uszkodzić aplikację, jeśli zastąpi ScaleControl i wykona jakiekolwiek niestandardowe działania przy nadpisywaniu.

Wersja wprowadzona

Serwisowanie .NET 6 wersja 6.0.101

Stare zachowanie

W ogólnodostępnej wersji platformy .NET 6 i starszych wersjach publiczny wirtualny interfejs API ScaleControl(SizeF, BoundsSpecified) zawsze był wywoływany, gdy PerformAutoScale() był wywoływany w kontrolce 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 serwisowych wersji platformy .NET 6, ScaleControl(SizeF, BoundsSpecified) jest wywoływana tylko wtedy, 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.

Zmień kategorię

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

Przyczyna 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 działania niezwiązane ze skalowaniem w tych metodach, które można nadpisać.

Interfejsy API, których dotyczy problem