بحاجة إلى العثور عليك إذا كان المستخدم يستخدم حجم الخط المكبر 125% أو 150% في نظام التشغيل Win 7
-
27-10-2019 - |
سؤال
هل يعرف أحد ما إذا كان بإمكاني التحقق من هذه المعلمة في أي مكان؟
المحلول
يمكنك القراءة Graphics.DpiX
لتمييز هذا.
تتضاعف Graphics.DpiX
على 100 وتقسيمها على 96 وستحصل على النسبة المئوية لتحجيم الخط.وهذا صحيح لأن قياس الخط بنسبة 100% يعادل 96 نقطة في البوصة.
كن حذرًا من أنه إذا لم يتم وضع علامة على التطبيق الخاص بك كـ إدارة شؤون الإعلام على علم ثم عندما يقوم المستخدم بتعيين حجم الخط إلى 150% DpiX
الملكية سوف تقدم تقريرا 96.لا أعرف ما إذا كان تم وضع علامة على تطبيقات WinForms القياسية على أنها على علم بـ DPI أم لا.
نصائح أخرى
إذا كنت لا تستخدم C#، فستحتاج إلى القيام بخطوتين لتفعيل هذا الأمر في نظام التشغيل Windows 7.
أولاً، اجعل تطبيقك مدركًا لـ DPI. هذه المدونة يشرح كيفية القيام بذلك.يتضمن ذلك إما تعديل بيان التطبيق الخاص بك، أو استدعاء SetProcessDPIAware() الوظيفة (التي قد تكون موجودة أو لا تكون موجودة).
بعد ذلك، احصل على قيم X/Y DPI باستخدام GetDeviceCaps(hdc, LOGPIXELSX)
و GetDeviceCaps(hdc, LOGPIXELSY)
, على التوالي، كما هو موضح في مقالة MSDN هذه.
لدي تطبيق لم يكن على علم بـ DPI سابقًا، ولكنه لا يزال معطلاً عند استخدامه مع تغيير حجم النص (كما هو متاح في لوحة التحكم "العرض" في Windows 7)، وقد أدى ذلك إلى تشغيله، بينما لم يكن له أي تأثير على Windows 8 أو الأحدث.