Windows Forms: Konfigurationselement hinzufügen

Das <add>-Element fügt einen vordefinierten Schlüssel hinzu, der angibt, ob Ihre Windows Forms-App Features unterstützt, die Windows Forms-Apps in .NET Framework 4.7 oder höher hinzugefügt wurden.

Syntax

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

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

attribute Beschreibung
key Erforderliches Attribut. Dies ist ein vordefinierter Schlüsselname, der einem bestimmten anpassbaren Windows Forms-Feature entspricht.
value Erforderliches Attribut. Der Wert, der dem key zugewiesen werden soll.

key-Attributnamen und zugeordnete Werte

key-Name Werte Beschreibung
"AnchorLayout.DisableSinglePassControlScaling" "true"|"false" Hiermit wird angegeben, ob verankerte Steuerelemente in einem einzigen Durchlauf skaliert werden. Mit "true" wird die Single-Pass-Skalierung deaktiviert (andernfalls "false"). Weitere Informationen finden Sie im Abschnitt „Single-Pass-Skalierung“ in den Hinweisen.
"DpiAwareness" "PerMonitorV2"|"false" Hiermit wird angegeben, ob eine Anwendung DPI-fähig ist. Legen Sie den Schlüssel auf "PerMonitorV2" fest, um die DPI-Werte zu unterstützen. Legen Sie ihn andernfalls auf "false" fest. Die DPI-Unterstützung ist ein aktivierbares Feature. Um die Windows Forms-Unterstützung für hohe DPI nutzen zu können, sollten Sie den Wert auf "PerMonitorV2" festlegen. Weitere Informationen finden Sie im Abschnitt Hinweise.
"CheckedListBox.DisableHighDpiImprovements" "true"|"false" Hiermit wird angegeben, ob das CheckedListBox-Steuerelement die in .NET Framework 4.7 eingeführten Skalierungs- und Layoutverbesserungen nutzt. Verwenden Sie "true", um die Skalierungs- und Layoutverbesserungen zu deaktivieren (andernfalls "false").
"DataGridView.DisableHighDpiImprovements" "true"|"false" Hiermit wird angegeben, ob das DataGridView-Steuerelement die in .NET Framework 4.7 eingeführten Skalierungs- und Layoutverbesserungen nutzt. Verwenden Sie "true", um die DPI-Unterstützung zu deaktivieren (andernfalls "false").
"DisableDpiChangedMessageHandling" "true"|"false" Verwenden Sie "true", um den Empfang von Nachrichten im Zusammenhang mit DPI-Skalierungsänderungen zu deaktivieren (andernfalls "false"). Weitere Informationen finden Sie im Abschnitt Hinweise.
"EnableWindowsFormsHighDpiAutoResizing" "true"|"false" Hiermit wird angegeben, ob die Größe einer Windows Forms-Anwendung aufgrund von DPI-Skalierungsänderungen automatisch geändert wird. Verwenden Sie "true", um die automatische Größenänderung zu aktivieren (andernfalls "false").
"Form.DisableSinglePassControlScaling" "true"|"false" Hiermit wird angegeben, ob die Form-Klasse in einem einzelnen Durchlauf skaliert wird. Mit "true" wird die Single-Pass-Skalierung deaktiviert (andernfalls "false"). Weitere Informationen finden Sie im Abschnitt „Single-Pass-Skalierung“ in den Hinweisen.
"MonthCalendar.DisableSinglePassControlScaling" "true"|"false" Hiermit wird angegeben, ob für das MonthCalendar-Steuerelement eine Single-Pass-Skalierung durchgeführt wird. Mit "true" wird die Single-Pass-Skalierung deaktiviert (andernfalls "false"). Weitere Informationen finden Sie im Abschnitt „Single-Pass-Skalierung“ in den Hinweisen.
"Toolstrip.DisableHighDpiImprovements" "true"|"false" Hiermit wird angegeben, ob das ToolStrip-Steuerelement die in .NET Framework 4.7 eingeführten Skalierungs- und Layoutverbesserungen nutzt. Verwenden Sie "true", um die DPI-Unterstützung zu deaktivieren (andernfalls "false").

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Element Beschreibung
<System.Windows.Forms.ApplicationConfigurationSection> Dieses Element konfiguriert die Unterstützung für neue Windows Forms-Anwendungsfeatures.

Bemerkungen

Ab .NET Framework 4.7 ermöglicht das <System.Windows.Forms.ApplicationConfigurationSection>-Element die Konfiguration von Windows Forms-Anwendungen für die Nutzung von Features, die in neueren Releases des .NET Framework hinzugefügt werden.

Mit dem Element <System.Windows.Forms.ApplicationConfigurationSection> können Sie ein oder mehrere untergeordnete <add>-Elemente hinzufügen, die jeweils eine bestimmte Konfigurationseinstellung definieren.

Eine Übersicht über die Unterstützung für hohe DPI in Windows Forms finden Sie unter Unterstützung für hohe DPI in Windows Forms.

DpiAwareness

Windows Forms-Apps, die unter Windows-Versionen ab Windows 10 Creators Edition ausgeführt werden und .NET Framework-Versionen ab .NET Framework 4.7 als Ziel haben, können so konfiguriert werden, dass sie die in .NET Framework 4.7 eingeführten Verbesserungen für hohe DPI-Werte nutzen können. Dazu gehören:

  • Unterstützung für dynamische DPI-Szenarien, in denen der Benutzer den DPI- oder Skalierungsfaktor ändert, nachdem eine Windows Forms-Anwendung gestartet wurde.

  • Verbesserungen bei der Skalierung und dem Layout einer Reihe von Windows Forms-Steuerelementen, z. B. dem Steuerelement MonthCalendar und dem Steuerelement CheckedListBox.

Die Unterstützung für hohe DPI-Werte ist ein aktivierbares Feature. Der DpiAwareness-Wert lautet standardmäßig false. Sie können die Windows Forms-Unterstützung für DPI-Werte aktivieren, indem Sie die Werte dieses Schlüssels in der Anwendungskonfigurationsdatei auf PerMonitorV2 festlegen. Wenn die DPI-Unterstützung aktiviert ist, sind auch alle einzelnen DPI-Features aktiviert. Dazu gehören:

  • DPI-geänderte Nachrichten, die vom DisableDpiChangedMessageHandling-Schlüssel gesteuert werden

  • Dynamische DPI-Unterstützung, die vom EnableWindowsFormsHighDpiAutoResizing-Schlüssel gesteuert wird

  • Single-Pass-Steuerelementskalierung, die von Form.DisableSinglePassControlScaling für einzelne Form-Steuerelemente, dem AnchorLayout.DisableSinglePassControlScaling-Schlüssel für verankerte Steuerelemente und dem MonthCalendar.DisableSinglePassControlScaling-Schlüssel für das MonthCalendar-Steuerelement gesteuert wird

  • Skalierungs- und Layoutverbesserungen für hohe DPI-Werte, die vom CheckListBox.DisableHighDpiImprovements-Schlüssel für das CheckedListBox-Steuerelement, dem DataGridView.DisableHighDpiImprovements-Schlüssel für das DataGridView-Steuerelement und dem Toolstrip.DisableHighDpiImprovements-Schlüssel für das ToolStrip-Steuerelement gesteuert werden

Die einzelne aktivierbare Standardeinstellung, die durch Festlegen von DpiAwareness auf PerMonitorV2 verfügbar wird, eignet sich in der Regel für neue Windows Forms-Anwendungen. Sie können jedoch einzelne Verbesserungen für hohe DPI-Werte deaktivieren, indem Sie der Anwendungskonfigurationsdatei den entsprechenden Schlüssel hinzufügen. Wenn Sie beispielsweise alle neuen DPI-Features mit Ausnahme der dynamischen DPI-Unterstützung nutzen möchten, fügen Sie der Anwendungskonfigurationsdatei Folgendes hinzu:

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

In der Regel deaktivieren Sie ein bestimmtes Feature, da Sie sich dafür entschieden haben, es programmgesteuert zu verarbeiten.

Weitere Informationen zum Nutzen der Unterstützung für hohe DPI-Werte in Windows Forms-Anwendungen finden Sie unter Unterstützung hoher DPI-Werte in Windows Forms.

DisableDpiChangedMessageHandling

Ab .NET Framework 4.7 lösen Windows Forms-Steuerelemente eine Reihe von Ereignissen im Zusammenhang mit Änderungen der DPI-Skalierung aus. Dazu gehören die Ereignisse DpiChangedAfterParent, DpiChangedBeforeParent und DpiChanged. Der Wert des DisableDpiChangedMessageHandling-Schlüssels bestimmt, ob diese Ereignisse in einer Windows Forms-Anwendung ausgelöst werden.

Single-Pass-Skalierung

Die Single- oder Multi-Pass-Skalierung beeinflusst die wahrgenommene Reaktionsfähigkeit der Benutzeroberfläche und das visuelle Erscheinungsbild von Benutzeroberflächenelementen, während sie skaliert werden. Ab .NET Framework 4.7 verwendet Windows Forms die Single-Pass-Skalierung. In früheren Versionen des .NET Framework wurde die Skalierung über mehrere Durchläufe durchgeführt, was dazu führte, dass einige Steuerelemente mehr skaliert wurden als erforderlich. Die Single-Pass-Skalierung sollte nur deaktiviert werden, wenn Ihre App vom alten Verhalten abhängig ist.

Siehe auch