الأعراض
قد تواجه تطبيقات Windows Forms التي تقوم بتطبيق منطق لإعدادات DPI عالي القياس الخاصة بهم غير عادية القياس إذا تم اختيارها هذه التطبيقات إلى Microsoft.NET Framework 4.5.2 DPI العالي التغييرات باستخدام إعداد ملف.config التالية:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
الحل
سوف تواجه التطبيقات التي يتم تطبيقها على عامل تحجيم على أعلى قيمة ذات مقياس القياس عندما اختارت في.NET Framework 4.5.2 DPI العالي التحسينات الإضافية. لحل هذه المشكلة، تحديث منطق القياس الخاصة بالتطبيق لتطبيق التدرج في القيمة الافتراضية ToolStrip.ImageScalingSize . هذا التغيير سيتم تجنب إدخال إضافية القياس.
على سبيل المثال، التطبيقات التي تحتوي على التعليمات البرمجية التالية سيتم تغيير حجم أزرار شريط الأدوات مرتين:
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));