Belirtiler
Windows Forms uygulamaları kendi ölçekleme için yüksek DPI ayarlarında mantığı uygulayan alışılmadık bu uygulamalar aşağıdaki .config dosyası ayarını kullanarak Microsoft .NET Framework 4.5.2 yüksek DPI değişiklikleri tutulur, ölçekleme karşılaşabilirsiniz:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Çözüm
Ölçeklenmiş değeri üzerine bir ölçekleme faktörü uygulamak uygulamaları, .NET Framework 4.5.2 yüksek DPI artışlarını tutulur ölçeklerken fazladan karşılaşırsınız. Bu sorunu gidermek için uygulamanın ToolStrip.ImageScalingSize varsayılan değeri ölçekleme uygulamak için ölçekleme mantığı güncelleştirin. Bu değişiklik, ekstra tanıtım önlenmiş olur ölçekleme.
Örneğin, aşağıdaki kodu olan uygulamalar ToolStrip düğmeleri iki kez ölçeklenir:
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();
}
Sabit varsayılan boyutu veya istenen görüntü boyutunuzu ölçeklemek için aşağıdaki kodu kullanabilirsiniz:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));