Windows 窗体添加配置元素

<add> 元素添加了一个预定义的键,用于指定 Windows 窗体应用程序是否支持添加到 .NET Framework 4.7 或更高版本中的 Windows 窗体应用程序的功能。

语法

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

特性和元素

下列各节描述了特性、子元素和父元素。

特性

属性 描述
key 必需的特性。 与特定 Windows 窗体自定义功能对应的预定义键名称。
value 必需的特性。 要赋给 key 的值。

key 属性名称和关联值

key 名称 说明
"AnchorLayout.DisableSinglePassControlScaling" "true"|"false" 指示是否在单通道中缩放定位控件。 若要禁用单通道缩放,则设置为“true”;否则设置为“false”。 有关详细信息,请参阅备注中的“单通道缩放”部分。
"DpiAwareness" "PerMonitorV2"|"false" 指示应用程序是否具有 DPI 感知功能。 将键设置为“PerMonitorV2”可支持 DPI 感知;否则,请将其设置为“false”。 DPI 感知是一项选择使用的功能;若要利用 Windows 窗体的高 DPI 支持,应将其值设置为“PerMonitorV2”。 有关详细信息,请参阅备注部分。
"CheckedListBox.DisableHighDpiImprovements" "true"|"false" 指示 CheckedListBox 控件是否利用 .NET Framework 4.7 中引入的缩放和布局改进功能。 若要选择不进行缩放和布局改进,则设置为“true”;否则设置为“false”。
"DataGridView.DisableHighDpiImprovements" "true"|"false" 指示是否在 .NET Framework 4.7 中引入了 DataGridView 控件缩放和布局改进。 若要选择不使用 DPI 感知,则设置为“true”;否则设置为“false”。
"DisableDpiChangedMessageHandling" "true"|"false" 若要选择不接收与 DPI 缩放更改相关的消息,则设置为“true”;否则设置为“false”。 有关详细信息,请参阅备注部分。
"EnableWindowsFormsHighDpiAutoResizing" "true"|"false" 指示是否由于 DPI 缩放变化而自动调整 Windows 窗体应用程序的大小。 若要启用自动调整大小,则设置为“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 中引入的缩放和布局改进功能。 若要选择不使用 DPI 感知,则设置为“true”;否则设置为“false”。

子元素

无。

父元素

元素 说明
<System.Windows.Forms.ApplicationConfigurationSection> 配置对新 Windows 窗体应用程序功能的支持。

备注

从 .NET Framework 4.7 开始,<System.Windows.Forms.ApplicationConfigurationSection> 元素允许配置 Windows 窗体应用程序,以利用最新版本的 .NET Framework 中添加的功能。

<System.Windows.Forms.ApplicationConfigurationSection> 元素允许你添加一个或多个子 <add> 元素,其中每个子元素都定义一个特定的配置设置。

有关 Windows 窗体高 DPI 支持的概述,请参阅 Windows 窗体中的高 DPI 支持

DpiAwareness

在自 Windows 10 Creators 版本起的 Windows 版本下运行且目标版本为自 .NET Framework 4.7 起的 .NET Framework 的 Windows 窗体应用程序,可配置为利用 .NET Framework 4.7 中引入的高 DPI 改进。 其中包括:

  • 支持动态 DPI 方案,在此方案中,用户在启动 Windows 窗体应用程序后更改了 DPI 或缩放系数。

  • 对许多 Windows 窗体控件(如 MonthCalendar 控件和 CheckedListBox 控件)的缩放和布局进行了改进。

高 DPI 感知是一项选择使用的功能;默认情况下,DpiAwareness 的值为 false。 可以通过在应用程序配置文件中将此键的值设置为 PerMonitorV2 来选择使用 Windows 窗体对 DPI 感知的支持。 如果启用了 DPI 感知,还会启用所有单个 DPI 功能。 其中包括:

  • DPI 更改消息,由 DisableDpiChangedMessageHandling 键控制。

  • 动态 DPI 支持,由 EnableWindowsFormsHighDpiAutoResizing 键控制。

  • 单通道控件缩放,由 Form.DisableSinglePassControlScaling(针对单个 Form 控件)、AnchorLayout.DisableSinglePassControlScaling 键(针对定位控件)和 MonthCalendar.DisableSinglePassControlScaling 键(针对 MonthCalendar 控件)控制

  • 高 DPI 缩放和布局改进,由 CheckListBox.DisableHighDpiImprovements(针对 CheckedListBox 控件)、DataGridView.DisableHighDpiImprovements 键(针对 DataGridView 控件)和 Toolstrip.DisableHighDpiImprovements 键(针对 ToolStrip 控件)控制。

通过将 DpiAwareness 设置为 PerMonitorV2 所提供的单个默认选择使用的设置通常适用于新 Windows 窗体应用程序。 但是,通过将相应的键添加到应用程序配置文件中,可以选择不使用单个高 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 窗体应用程序中的高 DPI 支持的详细信息,请参阅 Windows 窗体中的高 DPI 支持

DisableDpiChangedMessageHandling

自 .NET Framework 4.7 起,Windows 窗体控件引发了许多与 DPI 缩放更改相关的事件。 包括 DpiChangedAfterParentDpiChangedBeforeParentDpiChanged 事件。 DisableDpiChangedMessageHandling 键的值确定是否在 Windows 窗体应用程序中引发这些事件。

单通道缩放

单通道或多通道缩放会影响用户界面的感知响应能力和用户界面元素在缩放时的视觉外观。 自 .NET Framework 4.7 起,Windows 窗体使用单通道缩放。 在较低版本的 .NET Framework 中,缩放是通过多个通道执行的,这会导致某些控件的缩放比例超出了必需值。 仅当你的应用程序依赖于旧行为时,才应禁用单通道缩放。

请参阅