Symptomen
Windows Forms-toepassingen die hun eigen logica voor hoge DPI-instellingen schalen worden geïmplementeerd kunnen ongebruikelijke schalen als deze toepassingen met behulp van de volgende instelling van de .config-bestand mee aan het Microsoft .NET Framework 4.5.2 hoge DPI wijzigingen optreden:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Oplossing
Toepassingen die een schaalfactor op de waarde van de schaal van toepassing optreden extra te schalen als ze mee aan het .NET Framework 4.5.2 hoge DPI verbeteringen. Dit probleem oplossen door update schaal logica toe te passen schaal op de standaardwaarde voor de ToolStrip.ImageScalingSize van de toepassing. Deze wijziging wordt voorkomen dat de invoering van extra schalen.
Werkbalk knoppen wordt bijvoorbeeld tweemaal door toepassingen met de volgende code schalen:
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();
}
Voor het schalen van de constante standaardgrootte of van de grootte van de gewenste afbeelding kunt u de volgende code:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));