Windows Forms Add 組態元素

元素 <add> 會新增預先定義的索引鍵,指定您的 Windows Form 應用程式是否支援在 .NET Framework 4.7 或更新版本中新增至 Windows Forms 應用程式的功能。

Syntax

<System.Windows.Forms.ApplicationConfigurationSection>
  <add key="key-name" value="key-value" />
</System.Windows.Forms.ApplicationConfigurationSection>

屬性和元素

下列章節說明屬性、子元素和父元素。

屬性

屬性 描述
key 必要屬性。 預先定義的索引鍵名稱可對應至特定 Windows Forms 的可自訂功能。
value 必要屬性。 要指派給 key 的值。

key 屬性名稱與相關聯的值

key 名稱 描述
"AnchorLayout.DisableSinglePassControlScaling" "true"|"false" 指出錨定控制項是否在單一傳遞縮放。 「true」表示停用單一傳遞縮放;否則為 false。 如需詳細資訊,請參閱備註的「單一傳遞縮放」一節。
"DpiAwareness" "PerMonitorV2"|"false" 指出應用程式是否為 DPI 感知。 設索引鍵定為「PerMonitorV2」以便支援 Dpi 感知;否則,請設定為「false」。 DPI 感知是加入功能;若要利用 Windows Forms 的高 DPI 支援,您應該設定其值為「PerMonitorV2」。 如需詳細資訊,請參閱備註一節。
"CheckedListBox.DisableHighDpiImprovements" "true"|"false" 指出控制項是否 CheckedListBox 利用.NET Framework 4.7 中引進的調整和版面配置改善。 「true」表示退出縮放及配置改進功能;否則為「false」。
"DataGridView.DisableHighDpiImprovements" "true"|"false" 指出.NET Framework 4.7 中是否 DataGridView 引進控制項調整和版面配置改善。 「true」表示退出 DPI 感知;否則為「false」。
"DisableDpiChangedMessageHandling" "true"|"false" 「true」退出接收與 DPI 縮放變更相關的訊息;否則為「false」。 如需詳細資訊,請參閱備註一節。
"EnableWindowsFormsHighDpiAutoResizing" "true"|"false" 指出 Windows Forms 應用程式是否因 DPI 縮放變更而自動調整大小。 「true」表示啟用自動調整大小;否則為 false。
"Form.DisableSinglePassControlScaling" "true"|"false" 指出 Form 在單一傳遞是否縮放。 「true」表示停用單一傳遞縮放;否則為 false。 如需詳細資訊,請參閱備註的「單一傳遞縮放」一節。
"MonthCalendar.DisableSinglePassControlScaling" "true"|"false" 指出 MonthCalendar 控制項在單一傳遞是否縮放。 「true」表示停用單一傳遞縮放;否則為 false。 如需詳細資訊,請參閱備註的「單一傳遞縮放」一節。
"Toolstrip.DisableHighDpiImprovements" "true"|"false" 指出控制項是否 ToolStrip 利用.NET Framework 4.7 中引進的調整和版面配置改善。 「true」表示退出 DPI 感知;否則為「false」。

子元素

無。

父元素

元素 描述
<System.Windows.Forms.ApplicationConfigurationSection> 針對新 Windows Forms 應用程式功能設定支援。

備註

從 .NET Framework 4.7 開始, <System.Windows.Forms.ApplicationConfigurationSection> 元素可讓您設定Windows Forms應用程式,以利用在最新版.NET Framework中新增的功能。

<System.Windows.Forms.ApplicationConfigurationSection> 元素可新增一或多個子系 <add> 元素,每個子系元素都能定義特定組態設定。

如需 Windows Forms 高 DPI 支援概觀,請參閱 Windows Forms 的高 DPI 支援

DpiAwareness

Windows Forms從 Windows 10 Creators Edition 開始執行的 Windows 版本下執行的應用程式,以及從 .NET Framework 4.7 開始的目標.NET Framework版本,可以設定為利用 .NET Framework 4.7 中引進的高 DPI 改善功能。 其中包括:

  • 支援動態 DPI 案例,在 Windows Forms 應用程式啟動之後,使用者可用以變更 DPI 或縮放比例。

  • 針對數項 Windows Forms 控制項的縮放及配置功能 (例如 MonthCalendar 控制項與 CheckedListBox 控制項) 進行改進。

高 DPI 感知為可選功能;根據預設,DpiAwareness 的值 是 false。 您可在應用程式組態檔,設定此索引鍵的值為 PerMonitorV2,以便加入 Windows Forms 對 DPI 感知的支援。 如果已啟用 DPI 感知,會同時啟用所有個別 DPI 功能。 其中包括:

  • DPI 變更訊息,由 DisableDpiChangedMessageHandling 索引鍵控制。

  • 動態 DPI 支援,由 EnableWindowsFormsHighDpiAutoResizing 索引鍵控制。

  • 單一傳遞控制項縮放,由以下三者控制:個別 Form 控制項的 Form.DisableSinglePassControlScaling、錨定控制項的 AnchorLayout.DisableSinglePassControlScaling 索引鍵,以及 MonthCalendar 控制項的 MonthCalendar.DisableSinglePassControlScaling 索引鍵

  • 高 DPI 縮放及配置改進功能,由以下三者控制:CheckedListBox 控制項的 CheckListBox.DisableHighDpiImprovements 索引鍵、DataGridView 控制項的 DataGridView.DisableHighDpiImprovements 索引鍵,以及 ToolStrip 控制項的 Toolstrip.DisableHighDpiImprovements 索引鍵。

設定 DpiAwarenessPerMonitorV2 所提供的單一預設加入設定,通常適用於新 Windows Forms 應用程式。 然而,若您新增對應索引鍵至應用程式組態檔,即可退出個別高 DPI 改進功能。 例如,若要利用動態 DPI 支援以外的所有新 DPI 功能,您可新增下列內容至應用程式組態檔:

<System.Windows.Forms.ApplicationConfigurationSection>
   <add key="DpiAwareness" value="PerMonitorV2" />
   <!-- Disable dynamic DPI support -->
   <add key="EnableWindowsFormsHighDpiAutoResizing" value="false" />
</System.Windows.Forms.ApplicationConfigurationSection>

一般而言,若要退出特定功能,是因為您已選擇以程式設計方式處理此功能。

如需詳細資訊瞭解如何在 Windows Forms 應用程式利用高 DPI 支援,請參閱 Windows Forms 的高 DPI 支援

DisableDpiChangedMessageHandling

從 .NET Framework 4.7 開始,Windows Forms控制項會引發一些與 DPI 縮放比例變更相關的事件。 這些包括 DpiChangedAfterParentDpiChangedBeforeParentDpiChanged 事件。 DisableDpiChangedMessageHandling 索引鍵的值會決定這些事件是否在 Windows Forms 應用程式提出。

單一傳遞縮放

單一或多重傳遞縮放會影響使用者介面的感知回應性,並且在縮放時,會影響使用者介面元素的視覺外觀。 從 .NET Framework 4.7 開始,Windows Forms會使用單一傳遞調整。 在舊版的.NET Framework中,調整是透過多個階段執行,導致某些控制項的縮放比例超過必要。 僅在應用程式依賴舊行為的情況,才停用單一傳遞縮放。

另請參閱