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.
Zalecana akcja
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