हमारे पास मौजूदा विंडोज़ .NET एप्लिकेशन है जिसमें यह सभी कस्टम नियंत्रणों का उपयोग करता है।डीपीआई-जागरूक होने के लिए मौजूदा .NET विंडोज एप्लिकेशन बनाना
चीजें इन दिनों ठीक थीं क्योंकि हम केवल डिफ़ॉल्ट 96 डीपीआई रिज़ॉल्यूशन का समर्थन कर रहे थे।
अब हमें डीपीआई-जागरूक होने के लिए हमारे आवेदन की आवश्यकता है। हालात बिगड़ जा रहे हैं जब हम अगले
उच्च संकल्प 120 या 144 आदि के लिए जाने
सबसे आम मुद्दों
बिटमैप स्केलिंग मुद्दों और
पाठ कट ऑफ
these एमएसडीएन दस्तावेज़ों के माध्यम से जाने के बाद घ existing अतः सवाल मैं
करने की कोशिश कीअपने आवेदन के अंदर व्यर्थ में इस तरह के एक ठीक शामिल (के बाद से सभी का इस्तेमाल किया नियंत्रण
अनुकूलित कर रहे हैं और DPI-बारे में पता नहीं कर रहे हैं)।
चीजें मैं इनहेरिट
- के रूप में मेरे application.manifest AutoScaleMode संशोधित डीपीआई जागरूकता झंडा सक्षम करने के लिए और मुख्य रूप और अन्य रूपों पर AutoScaleMode.Dpi को AutoScaleMode सेटिंग का उपयोग बदल दिया नियंत्रण फ़ॉन्ट के बाद की कोशिश की ऑनलोड ईवेंट के अंदर
ग्राफिक्स जी = यह। क्रेतेग्राफिक्स(); int dpi = int.Parse (g.DpiX.ToString());
switch (dpi)
{
case 125:
this.Font = new Font(this.Font.FontFamily, this.Font.Size * 125.0f/(float)(g.DpiX));
Debug.WriteLine("<<---- Selected DPI Resolution :" + " 125 DPI ---->");
break;
... so on
- की कोशिश की ScaleControl विधि अधिभावी डीपीआई
के आधार पर अलग अलग स्केलिंग कारक का उपयोग करना लेकिन इन सब मेरे मामले में काम करने के लिए लग रहे हैं कभी नहीं।
क्या कोई इस मुद्दे से निपटने के लिए मुझे बेहतर दृष्टिकोण बताता/सुझाव देता है।
धन्यवाद
VATSAG
यह 'int dpi = int.Parse (g.DpiX.ToString()); 'मेरे अंदर कुछ हिलाता है। मुद्दे के बारे में, मुझे लगता है, आपको स्विच के माध्यम से डीपीआई की जांच नहीं करनी चाहिए। फॉर्मूला ** हमेशा ** का प्रयोग करें, सूत्रों को किसी भी डीपीआई के लिए काम करना चाहिए। आपको लेआउट को फिर से काम करने की आवश्यकता हो सकती है, केवल ऑटो आकार के 'लेबल' का उपयोग करें और उन्हें 'टेबललेआउट पैनेल' के अंदर रखें (यह सुनिश्चित करने के लिए कि कौन से नियंत्रण ओवरलैप नहीं होते हैं), आदि। 'पिक्चरबॉक्स' के अंदर बिटमैप्स ठीक होना चाहिए। यदि आपका मतलब आपके कस्टम नियंत्रण है, तो फिर - सूत्र + लेआउटिंग। – Sinatr
क्षमा करें अगर मैं यहाँ बेवकूफ लग रहा हूं..तुम्हारा सूत्रों का क्या मतलब है? –
उदाहरण के लिए, छवियों के लिए: 'new_width = width * scale * old_dpi/new_dpi;'। – Sinatr