Partager via


Mettre à l’échelle la taille minimale et maximale des formulaires de niveau supérieur en PPP

Les formulaires de niveau supérieur dans Windows Forms mettent désormais à l’échelle leurs valeurs MinimumSize et MaximumSize en fonction des points par pouce (PPP) du moniteur lors de l’exécution en mode HighDpiMode.PerMonitorV2.

Version introduite

.NET 8 Preview 1

Comportement précédent

Dans .NET 8, les valeurs MinimumSize et MaximumSize pour les formulaires de niveau supérieur restent constantes, quel que soit le mode PPP de l’application et la résolution du moniteur où le formulaire est rendu. Ceci a parfois conduit à des limitations de mise à l’échelle du formulaire de niveau supérieur.

Vous pouvez également choisir ce comportement dans .NET 7. Pour ce faire, définissez l'option de configuration de série de tests System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi décrite dans la section Action recommandée.

Nouveau comportement

À partir de .NET 8, les formulaires de niveau supérieur mettent désormais à l’échelle leurs valeurs MinimumSize et MaximumSize en fonction des PPP du moniteur lors de l’exécution en mode HighDpiMode.PerMonitorV2. Le comportement de votre application peut changer de la manière suivante :

  • Les dépendances à l'exécution peuvent être affectées lorsque la taille minimale et maximale du formulaire change.
  • De nouveaux événements MinimumSizeChanged et MaximumSizeChanged peuvent être déclenchés.
  • La taille du formulaire mis à l'échelle possède désormais de nouvelles valeurs de contrainte pour les tailles minimale et maximale.

Modifier la catégorie

Ce changement est un changement de comportement.

Raison du changement

Cette modification s'inscrit dans le cadre d'un effort plus large visant à améliorer l'expérience utilisateur Windows Forms sur les moniteurs à haute résolution. Il permet aux développeurs de définir des tailles minimales et maximales pour les formulaires de niveau supérieur sans avoir à prendre en compte la résolution du moniteur.

Si ce nouveau comportement vous pose problème, vous pouvez le désactiver en paramétrant System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi sur false dans votre fichier runtimeconfig.json.

Fichier modèle : runtimeconfig.template.json

{
   "configProperties": {
      "System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
   }
}

Fichier de sortie : [appname].runtimeconfig.json

{
   "runtimeOptions": {
      "configProperties": {
         "System.Windows.Forms.ScaleTopLevelFormMinMaxSizeForDpi": false
      }
   }
}

API affectées

N/A

Voir aussi