Udostępnij za pośrednictwem


Minimalna i maksymalna wielkość formularzy najwyższego poziomu do dpi

Formularze najwyższego poziomu w formularzach systemu Windows teraz skalują ich MinimumSize wartości i MaximumSize zgodnie z kropkami na cal (DPI) monitora podczas pracy w HighDpiMode.PerMonitorV2 trybie.

Wprowadzona wersja

.NET 8 (wersja zapoznawcza 1)

Poprzednie zachowanie

Na platformie .NET 8 MinimumSize wartości i MaximumSize formularzy najwyższego poziomu pozostały stałe niezależnie od trybu DPI aplikacji i dpi monitora, w którym jest renderowany formularz. Czasami spowodowało to ograniczenia skalowania formularza najwyższego poziomu.

Możesz również wyrazić zgodę na to zachowanie na platformie .NET 7. Aby wyrazić zgodę, ustaw System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi opcję konfiguracji środowiska uruchomieniowego opisaną w sekcji Zalecane działanie .

Nowe zachowanie

Począwszy od platformy .NET 8, formularze najwyższego poziomu skalują swoje MinimumSize wartości i MaximumSize zgodnie z dpi monitora podczas pracy w HighDpiMode.PerMonitorV2 trybie. Zachowanie aplikacji może ulec zmianie w następujący sposób:

  • Zależności czasu wykonywania mogą mieć wpływ na minimalną i maksymalną zmianę rozmiaru formularza.
  • Nowe MinimumSizeChanged i MaximumSizeChanged zdarzenia mogą być zgłaszane.
  • Rozmiar skalowalnego formularza ma teraz nowe wartości ograniczeń dla minimalnych i maksymalnych rozmiarów.

Kategoria zmiany

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Ta zmiana jest częścią szerszego wysiłku mającego na celu poprawę środowiska użytkownika formularzy systemu Windows na monitorach o wysokiej rozdzielczości DPI. Umożliwia deweloperom ustawianie minimalnych i maksymalnych rozmiarów formularzy najwyższego poziomu bez konieczności uwzględniania dpi monitora.

Jeśli nowe zachowanie jest dla Ciebie problematyczne, możesz zrezygnować z ustawienia System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi w false pliku runtimeconfig.json .

runtimeconfig.template.json plik szablonu:

{
   "configProperties": {
      "System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
   }
}

[appname].runtimeconfig.json plik wyjściowy:

{
   "runtimeOptions": {
      "configProperties": {
         "System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
      }
   }
}

Dotyczy interfejsów API

Nie dotyczy

Zobacz też