Windows Forms 新增組態專案

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

語法

<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 10 Creators Edition 開始執行的 Windows Forms 應用程式,以及從 .NET Framework 4.7 開始的 .NET Framework 目標版本,可以設定為利用 .NET Framework 4.7 中引進的高 DPI 改進功能。 包括:

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

  • 改善許多 Windows Forms 控制件的縮放和配置,例如 MonthCalendar 控件和 CheckedListBox 控件。

高 DPI 感知是選擇加入功能;根據預設,的值 DpiAwarenessfalse。 您可以在應用程式組態檔中,將此機碼 PerMonitorV2 的值設定為 ,以加入加入 Windows Forms 對 DPI 感知的支援。 如果已啟用 DPI 感知,也會啟用所有個別 DPI 功能。 包括:

  • DPI 變更的訊息,由 DisableDpiChangedMessageHandling 密鑰控制。

  • 由金鑰控制的 EnableWindowsFormsHighDpiAutoResizing 動態 DPI 支援。

  • 單一傳遞控件調整,由個別Form控件的控制Form.DisableSinglePassControlScalingAnchorLayout.DisableSinglePassControlScaling錨定控件的索引鍵,以及MonthCalendar.DisableSinglePassControlScaling控制控制MonthCalendar控制

  • 高 DPI 縮放比例和版面配置改善,由CheckListBox.DisableHighDpiImprovements控件的索引鍵、DataGridView.DisableHighDpiImprovements控件的索引鍵CheckedListBox控制,以及Toolstrip.DisableHighDpiImprovements控制的ToolStrip索引鍵DataGridView控制。

設定 DpiAwareness PerMonitorV2 為所提供的單一默認選擇加入設定,通常適用於新的 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 中,調整是透過多個階段執行,這會導致某些控件調整超過必要。 如果您的應用程式相依於舊的行為,則只應該停用單一傳遞調整。

另請參閱