Dela via


Formulär på översta nivån skalar minsta och högsta storlek till DPI

Formulär på den översta nivån i Windows Forms skalar nu sina MinimumSize och MaximumSize värden enligt bildskärmens punkter per tum (DPI) när de körs i HighDpiMode.PerMonitorV2 läge.

Version introducerad

Förhandsversion 1 av .NET 8

Tidigare beteende

I .NET 8 MinimumSize förblev värdena och MaximumSize för toppnivåformulär konstanta oavsett programmets DPI-läge och DPI för övervakaren där formuläret återges. Detta resulterade ibland i skalningsbegränsningar för formuläret på den översta nivån.

Du kan också välja det här beteendet i .NET 7. Om du vill anmäla dig anger du System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi det körningskonfigurationsalternativ som beskrivs i avsnittet Rekommenderad åtgärd .

Nytt beteende

Från och med .NET 8 skalar de översta formulären sina MinimumSize värden och MaximumSize värden enligt övervakarens DPI när de körs i HighDpiMode.PerMonitorV2 läge. Appens beteende kan ändras på följande sätt:

  • Körningsberoenden kan påverkas när formulärets minsta och högsta storlek ändras.
  • Nya MinimumSizeChanged händelser och MaximumSizeChanged händelser kan komma att genereras.
  • Den skalbara formulärstorleken har nu nya villkorsvärden för minsta och högsta storlek.

Ändra kategori

Den här ändringen är en beteendeförändring.

Orsak till ändringen

Den här ändringen är en del av ett bredare arbete för att förbättra Windows Forms-användarupplevelsen på höga DPI-övervakare. Det gör det möjligt för utvecklare att ange minsta och högsta storlekar för toppnivåformulär utan att behöva ta hänsyn till övervakarens DPI.

Om det nya beteendet är problematiskt för dig kan du välja bort genom att ange System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi i false din runtimeconfig.json-fil .

runtimeconfig.template.json mallfil:

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

[appname].runtimeconfig.json utdatafil:

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

Berörda API:er

Ej tillämpligt

Se även