Síntomas
Pueden encontrarse inusual escala si se ha optado por estas aplicaciones en los cambios de alta concentración de PPP de Microsoft.NET Framework 4.5.2 utilizando la siguiente configuración del archivo .config con aplicaciones de Windows Forms que implementan su propia lógica para configuración elevada de PPP de escalado:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Solución
Aplicaciones que aplican un factor de escala sobre el valor del producto encontrará extra de escala al optaron en las mejoras de.NET Framework 4.5.2 alta concentración de PPP. Para resolver este problema, actualice la lógica de ajuste de la aplicación para aplicar la escala en el valor predeterminado de ToolStrip.ImageScalingSize . Este cambio evitará la introducción de extra escala.
Por ejemplo, las aplicaciones que tienen el siguiente código escalan ToolStrip botones dos veces:
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();
}
Puede utilizar el código siguiente para escalar desde el tamaño predeterminado de constante, o desde el tamaño de la imagen deseada:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));