Sintomas
As aplicações de Windows Forms que implementam a sua própria escala lógica para definições de PPP altas poderão encontrar invulgares escala se estas aplicações consentidas para as alterações de alta resolução de PPP do Microsoft .NET Framework 4.5.2, utilizando a seguinte definição de ficheiro. config:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Resolução
Aplicações que se aplicam um factor de escala em cima o valor ajustado encontrará extra escala quando consentidas para os melhoramentos de alta resolução de PPP do .NET Framework 4.5.2. Para resolver este problema, actualize a lógica de escala da aplicação para aplicar o valor predefinido de ImageScalingSize de escala. Esta alteração irá evitar a introdução de extra de escala.
Por exemplo, aplicações que têm o seguinte código vão ser dimensionado botões da barra de ferramentas duas vezes:
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();
}
Pode utilizar o seguinte código para dimensionar o tamanho predefinido constante ou o tamanho da imagem pretendida:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));