मैं किसी एप्लिकेशन को हाई-डीपीआई स्केल करने के लिए कैसे बाध्य कर सकता हूं?
वहाँ एक आवेदन है, जो डेवलपर्स के रूप में यह उच्च dpi जागरूक, जब यह वास्तव में नहीं है के रूप में प्रकट किया। मैं डीपीआई-स्केलिंग को कैसे मजबूर कर सकता हूं?
इस बात पर ध्यान दें कि एक ऐप्लिकॉन है जिसे Microsoft ने "
HighDpiAware
" कंपेटिबिलिटी शिम लागू किया है , जब एप्लिकेशन वास्तव में नहीं है। मैं डीपीआई-स्केलिंग को कैसे मजबूर कर सकता हूं?
मैं एक आवेदन में डीपीआई-स्केलिंग लागू करने के लिए विंडोज को कैसे मजबूर कर सकता हूं?
संपादित करें: उच्च-डीपीआई स्केलिंग क्या है?
सभी उपयोगकर्ता 96dpi पर Windows नहीं चलाते हैं। प्रत्येक बटन 75x23 पिक्सेल का नहीं होना चाहिए, प्रत्येक टूलबार 25pixels उच्च नहीं है, और प्रत्येक ट्रीव्यू ग्लिफ़ 16x16 नहीं है। यदि उपयोगकर्ता ने विंडोज के लिए एक अलग डीपीआई सेटिंग को चुना है, तो आपको उचित रूप से सब कुछ स्केल करने की आवश्यकता है।
समस्या यह है कि लगभग कोई भी डेवलपर्स उच्च-डीपीआई सेटिंग्स को अच्छी तरह से संभालकर अपना काम नहीं करता है। सबसे अच्छे रूप में सब कुछ "एक ही आकार" रहेगा, जिसका अर्थ है कि हर व्यक्ति नन्हा दिखता है । सबसे खराब रूपों को गलत तरीके से रखा गया है, जिसमें पाठ को क्लिप किया गया है, और नियंत्रण दिखाई नहीं देता है।
विंडोज विस्टा के साथ शुरू, और डेस्कटॉप संरचना की शक्ति का लाभ उठाते हुए, माइक्रोसॉफ्ट ने डेवलपर्स को अपना काम करने के लिए छोड़ दिया, और अब आवेदन करने के लिए झूठ। वे ऐप बताते हैं कि उपयोगकर्ता 96dpi पर चल रहा है। Windows तब वीडियो कार्ड, और डेस्कटॉप कंपोजिशन का उपयोग करता है, ताकि फॉर्म जमा किए जा सकें।
प्रो: फॉर्म की सामग्री एक अच्छा पठनीय आकार होगा।
Con: सब कुछ थोड़ा फजी होगा।
यह "हाई-डीपीआई स्केलिंग" सुविधा केवल उपयोगकर्ता के विवेक पर काम करती है, और इसके लिए आवश्यक है:
- विंडोज विस्टा या नया
- सक्षम करने के लिए डेस्कटॉप संरचना
- उपयोगकर्ता "Windows XP शैली स्केलिंग का उपयोग करें" बंद करने के लिए
- उपयोगकर्ता आपके एप्लिकेशन के लिए स्केलिंग को अक्षम नहीं करेगा
एक डेवलपर के रूप में, आप उच्च-डीपीआई स्केलिंग से बाहर निकल सकते हैं; यदि आपने अपने एप्लिकेशन को ठीक से लिखने का प्रयास किया है, और आप जानते हैं कि आप हाई-डीपीआई को ठीक से संभाल लेंगे। आप अपने निष्पादन योग्य में एक प्रकट प्रविष्टि जोड़कर इस स्केलिंग से बाहर निकलते हैं, यह घोषणा करते हुए कि आप " हाई-डीपीआई अवगत हैं "।
के विषय कैसे अपने आवेदन (फ़ॉन्ट चेहरा, फ़ॉन्ट आकार, और डीपीआई सेटिंग शामिल नहीं) उपयोगकर्ता की प्राथमिकताओं का सम्मान करने के लिए एक सवाल है stack overflow
। जैसा कि आपकी " उच्च-डीपीआई जागरूकता " की घोषणा करने वाली प्रविष्टि प्रविष्टि के लिए सिंटैक्स है ।
यह सवाल है, पर सुपर उपयोगकर्ता , कैसे करने के लिए है पर ध्यान न दें , एक डेवलपर जो आगे बढ़कर एक उच्च डीपीआई बारे में पता प्रकट प्रविष्टि जोड़ा जब वास्तव में आवेदन नहीं है उच्च डीपीआई बारे में पता। उन्होंने विंडोज को स्केलिंग को अक्षम करने के लिए कहा था, लेकिन उन्होंने वास्तव में एप्लिकेशन का परीक्षण नहीं किया। नहीं है सॉफ्टवेयर वहाँ बाहर एक "उच्च डीपीआई बारे में पता" प्रकट प्रवेश के साथ, और अब आवेदन "बड़े फोंट" के अंतर्गत व्यर्थ है (उदाहरण के लिए 120dpi)।