Причини
Windows Forms застосунків, які їх масштабування логіки для високого значення dpi, можуть виникнути незвичайний масштабування, якщо ці програми, підключено до Microsoft .NET Framework 4.5.2 висока роздільна Здатність зміни, за допомогою такий параметр .config файл.
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" /> </appSettings>
Вирішення
Застосунки, які застосовуються масштабування фактором на значення масштабування буде займати багато додаткових масштабування, коли ввімкнено в .NET Framework 4.5.2 вдосконалення висока роздільна Здатність. Щоб вирішити цю проблему, оновлення, масштабування логіка застосунку застосування, масштабування на ToolStrip.ImageScalingSize значення за промовчанням. Ця зміна дозволить уникнути внесення додаткових масштабування. Наприклад, програми, які мають такий код буде масштабування двічі ToolStrip кнопки:
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(); }
Масштабувати постійного розміру або до потрібного зображення розміру, можна використовувати такий код:
this.ImageScalingSize = new Size((int)(16 * xFactor), (int)(16 * yFactor));