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.
Action recommandée
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