最上層表單的大小下限和大小上限為 DPI
現在於 HighDpiMode.PerMonitorV2 模式下,Windows Forms 中的最上層表單會根據監視器的每英吋點數 (DPI) 調整其 MinimumSize 和 MaximumSize 值。
導入的版本
.NET 8 Preview 1
先前的行為
無論應用程式 DPI 模式以及表單進行轉譯所在之監視器的 DPI 為何,在 .NET 8 中,最上層表單的 MinimumSize 和 MaximumSize 值都會保持常數。 這有時會限制最上層表單進行尺寸調整。
您也可以在 .NET 7 中選擇加入此行為。 若要加入宣告,請設定<建議動作>一節所述的System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi
執行階段設定選項。
新的行為
從 .NET 8 開始,如果使用 HighDpiMode.PerMonitorV2 模式,最上層表單會根據監視器的 DPI 來調整其 MinimumSize 和 MaximumSize 值。 您的應用程式行為可能會有下列變更:
- 表單的尺寸最大和最小值變更時,執行階段的相依性可能會受到影響。
- 可能會引發新的 MinimumSizeChanged 和 MaximumSizeChanged 事件。
- 尺寸調整後的表單現在具有新的最小和最大尺寸限制值。
變更類別
此變更為行為變更。
變更原因
我們為了改善高 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