Symptom
Windows Forms-program som implementerar egna logik för hög DPI-skalning kan uppstå ovanliga skalning om dessa program är valt i Microsoft.NET Framework 4.5.2 hög DPI ändringar genom att använda följande inställning i .config-filen:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Lösning
Ansökningar som gäller en skalningsfaktor på det beräknade värdet uppstår extra när de valt till förbättringar för.NET Framework 4.5.2 hög DPI-skalning. Lös problemet genom att uppdatera programmets skalning logik för att tillämpa skalning på standardvärdet för ToolStrip.ImageScalingSize . Den här ändringen kommer att undvika införandet av extra skalning.
Program som har följande kod skala två gånger ToolStrip knappar till exempel:
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();
}
Du kan använda följande kod för att skala från konstant standardstorlek eller från din önskad Bildstorlek:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));