共用方式為


最上層表單的大小下限和大小上限為 DPI

現在於 HighDpiMode.PerMonitorV2 模式下,Windows Forms 中的最上層表單會根據監視器的每英吋點數 (DPI) 調整其 MinimumSizeMaximumSize 值。

導入的版本

.NET 8 Preview 1

先前的行為

無論應用程式 DPI 模式以及表單進行轉譯所在之監視器的 DPI 為何,在 .NET 8 中,最上層表單的 MinimumSizeMaximumSize 值都會保持常數。 這有時會限制最上層表單進行尺寸調整。

您也可以在 .NET 7 中選擇加入此行為。 若要加入宣告,請設定<建議動作>一節所述的System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi執行階段設定選項。

新的行為

從 .NET 8 開始,如果使用 HighDpiMode.PerMonitorV2 模式,最上層表單會根據監視器的 DPI 來調整其 MinimumSizeMaximumSize 值。 您的應用程式行為可能會有下列變更:

  • 表單的尺寸最大和最小值變更時,執行階段的相依性可能會受到影響。
  • 可能會引發新的 MinimumSizeChangedMaximumSizeChanged 事件。
  • 尺寸調整後的表單現在具有新的最小和最大尺寸限制值。

變更類別

此變更為行為變更

變更原因

我們為了改善高 DPI 監視器上的 Windows Forms 使用體驗而進行了一些更新,這便是其中一項, 這項變更可以讓開發人員設定最上層表單的最小和最大尺寸,完全無需考慮監視器的 DPI。

如果新的行為造成您的困擾,您可以在 runtimeconfig.json 檔案中,將 System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi 設為 false 退出使用。

runtimeconfig.template.json 範本檔案:

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

[appname].runtimeconfig.json 輸出檔案:

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

受影響的 API

N/A

另請參閱