Symptômes

Les applications Windows Forms qui implémentent leur propre mise à l’échelle de logique pour les résolutions élevées peuvent rencontrer inhabituelle mise à l’échelle ces applications quittent les modifications de résolutions élevées 4.5.2 de Microsoft.NET Framework en utilisant le paramètre du fichier .config suivant :

<appSettings> <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" /></appSettings>

Résolution

Les applications qui s’appliquent à un facteur d’échelle sur la valeur de mise à l’échelle rencontrera supplémentaire mise à l’échelle des lorsqu’ils quittent les améliorations de PPP élevé.NET Framework 4.5.2. Pour résoudre ce problème, mettez à jour la logique de l’application mise à l’échelle pour appliquer la mise à l’échelle de la valeur par défaut de ToolStrip.ImageScalingSize . Cette modification permet d’éviter l’introduction de supplémentaire mise à l’échelle.Par exemple, les applications qui ont le code suivant mettra à l’échelle les boutons ToolStrip deux fois :

public MyToolStrip(){ IntPtr hDC = GetDC(new HandleRef(null, IntPtr.Zero)); double xFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSX) / 96.0; double yFactor = GetDeviceCaps(new HandleRef(null, hDC), LOGPIXELSY) / 96.0; this.ImageScalingSize = new Size((int)(this.ImageScalingSize.Width * xFactor), (int)(this.ImageScalingSize.Height * yFactor)); InitializeComponent();}

Vous pouvez utiliser le code suivant à l’échelle à partir de la taille par défaut de constante ou la taille de votre image de votre choix :

this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));

  

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.