بحاجة إلى العثور عليك إذا كان المستخدم يستخدم حجم الخط المكبر 125% أو 150% في نظام التشغيل Win 7

StackOverflow https://stackoverflow.com/questions/7330058

سؤال

هل يعرف أحد ما إذا كان بإمكاني التحقق من هذه المعلمة في أي مكان؟

هل كانت مفيدة؟

المحلول

يمكنك القراءة 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 أو الأحدث.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top