मेरा .NET एप्लिकेशन (VB.NET 3.5 यदि आपको वास्तव में पता होना चाहिए) फॉर्म उच्च डीपीआई सेटिंग्स में प्रस्तुत किए जाने पर उचित रूप से प्रारूपित नहीं होते हैं। मैंने जो भी फिक्स पाया है, वह अब तक समस्या का कारण बताता है क्योंकि "कुछ यूआई तत्व ठीक से स्केल नहीं करते हैं"। मैं सोच रहा था कि क्या किसी के पास अधिक सार्थक स्पष्टीकरण था? धन्यवाद!क्यों बड़े डीपीआई सेटिंग्स पर .NET Winforms पैमाने पर अनुचित है?
उत्तर
असल में समस्या यह है कि जीडीआई + (और विस्तार से, विंडोज फॉर्म) डिवाइस पिक्सल का उपयोग अपनी डिफ़ॉल्ट माप इकाई के रूप में करता है। जब आप डीपीआई सेटिंग बदलते हैं, तो पिक्सेल का भौतिक आकार वास्तव में नहीं बदलता है (एक पिक्सेल एक पिक्सेल है) लेकिन फोंट और छवियों को गैर-पिक्सेल आकार में मापा जाता है, तदनुसार स्केल किया जाता है। विंडोज फॉर्म लेआउट के लिए और अधिक जगह बनाकर इसे बेहतर तरीके से समायोजित करने का प्रयास करता है, लेकिन एकमात्र सच्चा समाधान पूरे गैर-पिक्सेल आधारित माप प्रणाली का उपयोग करना है। यह वही है जो डब्ल्यूपीएफ करता है।
डब्ल्यूपीएफ में, 96 डीपीआई पर, एक डिवाइस-स्वतंत्र पिक्सेल भौतिक पिक्सेल के समान आकार के अनुरूप होता है। लेकिन जब आप सिस्टम के डीपीआई को बदलते हैं, तो डब्ल्यूपीएफ विश्व स्तर पर वर्चुअल समन्वय प्रणाली को स्केल करता है। आवेदन, नियंत्रण, आदि सभी को कोई जानकारी नहीं है कि वे अब भौतिक पिक्सेल को संरेखित नहीं कर रहे हैं। वास्तव में यह कभी-कभी डब्ल्यूपीएफ में एलियासिंग समस्याओं का कारण बन सकता है लेकिन आपको किसी भी अलग डीपीआई सेटिंग में अलग-अलग एप्लिकेशन के लेआउट के बारे में चिंता करने की ज़रूरत नहीं है।
विंडोज फॉर्म में समस्या को कम करने के लिए आप एक चीज कर सकते हैं, "नया" (.NET 2.0 के रूप में) लेआउट पैनल जैसे टेबललेआउट पैनेल, फ्लोलाउटआउट पैनल आदि का उपयोग करना है। जब भी संभव हो एंकर, डॉक और ऑटोसाइज का उपयोग करें। यह विंडोज़ फॉर्म को आपके यूआई को रीफ्लो करने की अनुमति देगा जितना संभव हो सके उतना संभव है।
यह भी सावधान रहें कि यदि आप गैर मानक डीपीआई में फॉर्म बनाते हैं, तो विंडोज फॉर्म इसे "बेस" आकार के रूप में उपयोग करेंगे। यह लगभग हमेशा चीजों को खराब करता है। इसलिए अपने फॉर्म डिज़ाइन करने के लिए 96 डीपीआई का उपयोग करने का प्रयास करें।
- 1. क्यों Pex बड़े पैमाने पर नहीं है
- 2. बड़े पैमाने पर डेटासेट
- 3. बड़े पैमाने पर डेरिवेटिव्स
- 4. बड़े पैमाने पर refactoring
- 5. बड़े पैमाने पर छद्म संकेत
- 6. बड़े पैमाने पर उपयोगी कार्यों को बड़े पैमाने पर आयात करना
- 7. एंड्रॉइड: बड़े पैमाने पर सक्षम/अक्षम बटन
- 8. sed: बड़े पैमाने पर यादृच्छिक अन्य पाठ
- 9. बड़े पैमाने पर काम और Backbone.js
- 10. कम विलंबता, बड़े पैमाने पर संदेश कतार
- 11. सबसे तेज तरीका बड़े पैमाने पर अद्यतन
- 12. जावा - बड़े पैमाने पर जीयूआई परियोजनाएं
- 13. libreoffice बड़े पैमाने पर पाठ रंग परिवर्तन
- 14. सी # WinForms डीपीआई स्केलिंग
- 15. बड़े पैमाने पर पहलू मूल्यों पर सौर पैमाने कितना अच्छा है?
- 16. यह बड़े पैमाने पर असाइनमेंट कैसे रोकता है?
- 17. क्या ऑब्जेक्ट मॉकिंग बड़े पैमाने पर उपयोग किया जाता है?
- 18. आप ASP.NET से बड़े पैमाने पर ईमेल कैसे भेजते हैं?
- 19. बड़े पैमाने पर मशीन सीखने - पायथन या जावा?
- 20. .NET WinForms ऐप
- 21. अप्रत्याशित रूप से बड़े पैमाने पर आकार का उपयोग%
- 22. jquery $ .post() अजाक्स पैमाने पर बड़े पैमाने पर उपयोग करता है, या क्या यह सॉकेट खुला रहता है?
- 23. क्या बड़े पैमाने पर परियोजनाओं के लिए रेल पर रूबी अच्छा है?
- 24. GetMessageW मेरे WPF एप्लिकेशन में बड़े पैमाने पर CPU उपयोग क्यों लेगा?
- 25. बड़े पैमाने पर क्लस्टरिंग लाइब्रेरी संभवतः पाइथन बाइंडिंग के साथ
- 26. बड़े पैमाने पर IE7 मेमोरी लीक जब करीब
- 27. बड़े पैमाने पर पोस्टग्रेज़ के बाद खाली स्थान
- 28. बड़े पैमाने पर स्क्रैपिंग/पार्सिंग के लिए कौन सी तकनीक?
- 29. बड़े पैमाने पर इंटरनेट एप्लिकेशन, कहां से शुरू करें?
- 30. वेब आधारित बड़े पैमाने पर ग्राफ ड्राइंग लाइब्रेरी