Příznaky
Model Windows Forms aplikace, které implementují vlastní logiku pro vysoké nastavení DPI měřítka setkat neobvyklé změny měřítka, pokud tyto aplikace pomocí následujících nastavení souboru .config přihlášených do změny Microsoft rozhraní.NET Framework 4.5.2 vysoké rozlišení DPI:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Řešení
Aplikace, které použije měřítko na hodnotu měřítkem narazíte na další změnu měřítka při jejich přihlášených na vysoké rozlišení DPI vylepšení rozhraní.NET Framework 4.5.2. Chcete-li tento problém vyřešit, aktualizujte měřítka logiku aplikace použít měřítko na výchozí hodnotu ToolStrip.ImageScalingSize . Tato změna bude zabránit zavlečení extra měřítka.
Aplikace, které mají následující kód například změní měřítko ToolStrip tlačítka dvakrát:
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();
}
Měřítko z konstantní velikost, nebo velikost požadovaného obrázku můžete použít následující kód:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));