Windows Forms Ajouter un élément de configuration

L’élément <add> ajoute une clé prédéfinie qui spécifie si votre application formulaire Windows prend en charge les fonctionnalités ajoutées aux applications Windows Forms dans le .NET Framework 4.7 ou version ultérieure.

Syntaxe

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
key Attribut requis. Nom de clé prédéfini qui correspond à une fonctionnalité Windows Forms personnalisable particulière.
value Attribut requis. Valeur à affecter à key.

key noms d’attributs et valeurs associées

key nom Valeurs Description
« AnchorLayout.DisableSinglePassControlScaling » « true »|« false » Indique si les contrôles ancrés sont mis à l’échelle en un seul passage. À définir sur « true » pour désactiver la mise à l’échelle en un seul passage ; sinon, « false ». Pour plus d’informations, consultez la section « Mise à l’échelle de passe unique » dans les remarques .
« DpiAwareness » « PerMonitorV2 »|« false » Indique si une application prend en charge PPP. Définissez la clé sur « PerMonitorV2 » pour activer la prise en charge PPP ; sinon, définissez-la sur « false ». La prise en charge des PPP est une fonctionnalité d’adhésion ; pour tirer parti de la prise en charge élevée des ppp de Windows Forms, vous devez définir sa valeur sur « PerMonitorV2 ». Pour plus d’informations, consultez la section Remarques.
« CheckedListBox.DisableHighDpiImprovements » « true »|« false » Indique si le contrôle CheckedListBox tire parti des améliorations apportées à la mise à l’échelle et à la disposition introduites dans .NET Framework 4.7. À définir sur « true » pour refuser ces améliorations ; sinon, « false ».
« DataGridView.DisableHighDpiImprovements » « true »|« false » Indique si les améliorations apportées à la mise à l’échelle et à la disposition des contrôles DataGridView introduites dans .NET Framework 4.7. À définir sur « true » pour refuser la prise en charge PPP ; sinon, « false ».
« DisableDpiChangedMessageHandling » « true »|« false » À définir sur « true » pour refuser de recevoir des messages liés aux changements de mise à l’échelle PPP ; sinon, « false ». Pour plus d’informations, consultez la section Remarques.
« EnableWindowsFormsHighDpiAutoResizing » « true »|« false » Indique si une application Windows Forms est automatiquement redimensionnée en raison des modifications de mise à l’échelle ppp. À définir sur « true » pour activer le redimensionnement automatique  ; sinon, « false ».
« Form.DisableSinglePassControlScaling » « true »|« false » Indique si l’échelle est mise à l’échelle Form dans une seule passe. À définir sur « true » pour désactiver la mise à l’échelle en un seul passage ; sinon, « false ». Pour plus d’informations, consultez la section « Mise à l’échelle de passe unique » dans les remarques .
« MonthCalendar.DisableSinglePassControlScaling » « true »|« false » Indique si le contrôle est mis à l’échelle MonthCalendar dans une seule passe. À définir sur « true » pour désactiver la mise à l’échelle en un seul passage ; sinon, « false ». Pour plus d’informations, consultez la section « Mise à l’échelle de passe unique » dans les remarques .
« Toolstrip.DisableHighDpiImprovements » « true »|« false » Indique si le contrôle ToolStrip tire parti des améliorations apportées à la mise à l’échelle et à la disposition introduites dans .NET Framework 4.7. À définir sur « true » pour refuser la prise en charge PPP ; sinon, « false ».

Éléments enfants

Aucune.

Éléments parents

Élément Description
<System.Windows.Forms.ApplicationConfigurationSection> Configure la prise en charge des nouvelles fonctionnalités d’application Windows Forms.

Notes

À compter de .NET Framework 4.7, l’élément <System.Windows.Forms.ApplicationConfigurationSection> vous permet de configurer des applications Windows Forms pour tirer parti des fonctionnalités ajoutées dans les versions récentes du .NET Framework.

L’élément <System.Windows.Forms.ApplicationConfigurationSection> vous permet d’ajouter un ou plusieurs éléments <add> enfants, chacun définissant un paramètre de configuration spécifique.

Pour obtenir une vue d’ensemble de Windows Forms prise en charge des ppp élevés, consultez High DPI Support dans Windows Forms.

DpiAwareness

Windows Forms applications qui s’exécutent sous Windows versions commençant par Windows 10 Creators Edition et les versions cibles de l’infrastructure .NET à partir de la .NET Framework 4.7 peuvent être configurées pour tirer parti des améliorations élevées apportées à DPI introduites dans .NET Framework 4.7. Il s’agit notamment des paramètres suivants :

  • Prise en charge des scénarios DPI dynamiques dans lesquels l’utilisateur modifie le facteur DPI ou d’échelle après le lancement d’une application Windows Forms.

  • Améliorations apportées à la mise à l’échelle et à la disposition d’un certain nombre de contrôles Windows Forms, tels que le contrôle MonthCalendar et le contrôle CheckedListBox.

La prise en charge élevée des PPP est une fonctionnalité d’adhésion ; par défaut, la valeur est DpiAwarenessfalse. Vous pouvez choisir de prendre en charge Windows Forms pour la prise en charge des ppp en définissant la valeur de cette clé sur PerMonitorV2 dans le fichier de configuration de l'application. Si la prise en charge PPP est activée, toutes les fonctionnalités PPP individuelles le sont également. Il s’agit notamment des paramètres suivants :

  • Ppp a modifié les messages, qui sont contrôlés par la DisableDpiChangedMessageHandling clé.

  • Prise en charge dynamique de ppp, contrôlée par la EnableWindowsFormsHighDpiAutoResizing clé.

  • Mise à l’échelle des contrôles à passe unique, contrôlée par les contrôles individuelsForm, par la AnchorLayout.DisableSinglePassControlScaling clé des contrôles ancrés et par la MonthCalendar.DisableSinglePassControlScaling clé du MonthCalendar contrôle Form.DisableSinglePassControlScaling

  • Améliorations élevées de la mise à l’échelle et de la disposition, contrôlées par la CheckListBox.DisableHighDpiImprovements clé du CheckedListBox contrôle, par la DataGridView.DisableHighDpiImprovements clé du DataGridView contrôle et par la Toolstrip.DisableHighDpiImprovements clé du ToolStrip contrôle.

Le paramètre d’opt-in par défaut unique fourni par le paramètre DpiAwareness sur PerMonitorV2 est généralement approprié pour les nouvelles applications Windows Forms. Toutefois, vous pouvez refuser les améliorations individuelles de la haute résolution en ajoutant la clé correspondante au fichier de configuration de l’application. Par exemple, pour tirer parti de toutes les nouvelles fonctionnalités PPP, à l’exception de la prise en charge PPP dynamique, vous devez ajouter ce qui suit au fichier de configuration de votre application :

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

En règle générale, vous refusez une fonctionnalité particulière lorsque vous choisissez de la gérer par programmation.

Pour plus d’informations sur la prise en charge des ppp élevés dans les applications Windows Forms, consultez High DPI Support dans Windows Forms.

AutoScaleMode

Le mode par défaut AutoScaleMode.Font met à l’échelle les contrôles en fonction de la taille de police système actuelle. Les métriques de police peuvent varier à différents niveaux DPI. La mise à l’échelle des polices peut donc ne pas être linéaire lorsque l’application s’exécute en tant que ppp système ou prenant en charge les ppp par moniteur v2 (voir SystemAware et PerMonitorV2). Cela peut entraîner des écarts dans les ratios hauteur/largeur. Le AutoScaleMode.Dpi mode est toujours linéaire et n’a pas cette limitation.

Gardez à l’esprit que certains contrôles, tels que TextBox et Label- utilisent toujours la mise à l’échelle de police, quel que soit le AutoScaleMode paramètre. En raison de ces différences par contrôle, il n’est pas toujours simple de déterminer le mode qui fonctionne mieux sans connaître vos exigences de conception spécifiques.

À compter de .NET 8, lorsqu’une application Windows Forms s’exécute dans PerMonitorV2 sensibilisation aux ppp, le dimensionnement de fenêtre de niveau supérieur respecte AutoScaleMode, ce qui améliore la cohérence avec la mise à l’échelle des contrôles enfants. Pour plus d’informations, consultez la mise à l’échelle des fenêtres de niveau supérieur.

DisableDpiChangedMessageHandling

À compter de .NET Framework 4.7, les contrôles Windows Forms déclenchent un certain nombre d’événements liés aux modifications de la mise à l’échelle ppp. Il s’agit notamment des événements et DpiChangedBeforeParentDpiChanged des DpiChangedAfterParentévénements. La valeur de la clé DisableDpiChangedMessageHandling détermine si ces événements sont déclenchés dans une application Windows Forms.

Mise à l’échelle en un seul passage

La mise à l’échelle en un ou plusieurs passages détermine la réactivité perçue de l’interface utilisateur et l’aspect visuel des éléments de celle-ci lorsqu’ils sont mis à l’échelle. À compter de .NET Framework 4.7, Windows Forms utilise une mise à l’échelle directe unique. Dans les versions précédentes de l’infrastructure .NET, la mise à l’échelle a été effectuée via plusieurs passes, ce qui a entraîné la mise à l’échelle de certains contrôles plus que nécessaire. La mise à l’échelle en un seul passage ne doit être désactivée que si votre application dépend de l’ancien comportement.

Voir aussi