Sintomas
Aplicativos do Windows Forms que implementam sua própria lógica para configurações de DPI alto de dimensionamento poderão encontrar incomuns de dimensionamento se esses aplicativos serão consentidos para as alterações de DPI alta do Microsoft.NET Framework 4.5.2 usando a seguinte configuração de arquivo. config:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Resolução
Aplicativos que se aplicam a um fator de escala sobre o valor de escala encontrará extra de dimensionamento quando eles são consentidos para os aprimoramentos do.NET Framework 4.5.2 DPI alta. Para resolver esse problema, atualize a lógica de dimensionamento do aplicativo para aplicar o valor padrão de ToolStrip.ImageScalingSize de dimensionamento. Esta alteração irá evitar a introdução de extra de dimensionamento.
Por exemplo, aplicativos com o código a seguir serão dimensionado ToolStrip botões de 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();
}
Você pode usar o código a seguir para dimensionar a partir do tamanho padrão constante ou o tamanho da imagem desejada:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));