Pazīmes
Windows Forms lietojumprogrammās, kuras īstenot savas mērogošanas loģikas augsts DPI iestatījumus var rasties neparasti mērogošana, ja šīs programmas ir atlasītas Microsoft .NET Framework 4.5.2 augsts DPI izmaiņas, izmantojot šo iestatījumu .config failu:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
Risinājums
Lietojumprogrammas, kas mērogošanas koeficientu skala vērtību uz rasties papildu mērogošana, tie ir atlasītas .NET Framework 4.5.2 augstu uzlabojumi. Lai novērstu šo problēmu, atjauniniet lietojumprogrammu mērogošanas loģikas pieteikties mērogošanas ToolStrip.ImageScalingSize noklusējuma vērtību. Šīs izmaiņas novērsīs tādu papildu mērogošana.
Piemēram, lietojumprogrammas, kurām ir šāds kods būs divreiz mērogot tam pogas:
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();
}
Šo kodu var izmantot, lai mērogotu pastāvīgu noklusējuma lielums vai vajadzīgo attēla izmēru:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));