2011-08-08 5 views
6

मैं विंडोज 7 पर एक Winforms (VS2008 का उपयोग कर) ऐप का परीक्षण शुरू कर रहा हूं, और एक अजीब समस्या देख रहा हूं।मेरे डायलॉग बॉक्स कुछ (लेकिन सभी नहीं) विंडोज 7 कंप्यूटर पर बहुत छोटे क्यों हैं?

यह Win7 प्रतिष्ठानों के पहले जोड़े पर ठीक चला गया, लेकिन अगले दो में, मेरे कई संवाद बहुत छोटे हैं, सामग्री को लगभग 30% तक क्लिप करना।

ऐप WinXP पर विकसित किया गया था, और इस समस्या को पर XP 0 इंस्टॉलेशन के पर नहीं देखा है!

बस समस्या की जांच शुरू करना - उन प्रणालियों के बीच मतभेदों पर कोई विवरण नहीं है जो काम करते हैं और जो अभी तक नहीं हैं।

संपादित

जवाब से एक के लिए केट के टिप्पणी के अनुसार, Win7 कभी कभी एक कस्टम पाठ का आकार करने के लिए जब एक नया मॉनिटर स्थापित किया गया है बदल जाएगा। समस्या वाले मशीन में एक बड़ा, वाइडस्क्रीन मॉनीटर होता है, और जब हमने चेक किया (नियंत्रण कक्ष + डिस्प्ले + कस्टम टेक्स्ट साइज) - निश्चित रूप से पर्याप्त - कस्टम टेक्स्ट आकार 125% पर सेट किया गया था। इसे 100% तक सेट करने से समस्या दूर हो गई।

मैं फिर टेक्स्ट आकार को 125% पर सेट करके WinXP पर समस्या को दोहराने में सक्षम था।

तो सवाल अब बन जाता है - आप कैसे सुनिश्चित करते हैं कि Winforms ऐप "कस्टम टेक्स्ट आकार स्वतंत्र" है?

/संपादित

के रूप में सुझाव दिया, यहाँ कुछ स्क्रीन शॉट्स रहे हैं। पहला विंडोज 7 कंप्यूटर से है, दूसरा एक मेरी विनएक्सपी विकास प्रणाली से है।

Windows 7

Windows XP

+3

नियंत्रण कक्ष + प्रदर्शन, सेट कस्टम पाठ का आकार। Form.AutoScaleMode का प्रयोग करें। –

+0

ऐसा लगता है कि आपकी विन 7 मशीन में एक थीम (शीर्षक बार एरो नहीं है) और फ़ॉन्ट बढ़ाना है। हंस कहते हैं कि आपको ऐसा करने की ज़रूरत है। –

+0

ऑटोस्केलमोड के लिए अनुशंसित सेटिंग क्या है? साथ ही, क्या AutoSizeMode गुण यहां भी भूमिका निभा सकते हैं? –

उत्तर

1

हालांकि दोनों स्क्रीन डीपीआई और थीम्स नियंत्रण के आकार को बदल सकते हैं, यह समस्या नहीं है क्योंकि आपकी स्क्रीन शॉट में विंडो क्रोम और गैर-पाठ नियंत्रण आकार अपरिवर्तित हैं। समस्या यह है कि आप कस्टम फ़ॉन्ट आकार को ध्यान में नहीं ले रहे हैं।

यदि आप उन्हें एक निश्चित रूप आकार में ठीक करने के लिए नियंत्रण को स्थानांतरित करना चाहते हैं तो आपको अपने नियंत्रण की Control.AutoScaleDimensions संपत्ति का उपयोग करके गणना करना होगा। यह बहुत काम है, ऐसा मत करो।

इसके बजाय, पूर्ण निर्देशांक का उपयोग करके अपने नियंत्रण रखें और परिणामों को शामिल करने के लिए अपना फॉर्म बढ़ाएं। अपने फॉर्म 'AutoScaleMode = AutoScaleMode.Font सेट करें।

+0

मुझे समझ में नहीं आता है कि "पूर्ण निर्देशांक का उपयोग करके अपने नियंत्रणों को निर्धारित करें और परिणामों को शामिल करने के लिए अपना फॉर्म बढ़ाएं"। क्या इन चीजों को मुझे प्रोग्रामेटिक-सहयोगी करने की ज़रूरत है? यदि हां, तो कैसे? या आप यह कह रहे हैं कि यह ऑटोस्केल मोड को बस सेट करने के परिणामस्वरूप होता है? स्पष्टीकरण की सराहना की जाएगी! धन्यवाद ... –

+1

यदि आप विजुअल स्टूडियो डिज़ाइन मोड का उपयोग कर रहे हैं, तो बस नियंत्रण खींचें ताकि वे संपादक में सही लगे। डिज़ाइन फ़ाइल में आकार के लिए पूर्ण निर्देशांक (पिक्सल) होंगे। यदि आप 'AutoScaleMode = AutoScaleMode.Font' सेट करते हैं तो कंटेनर रनटाइम फ़ॉन्ट आवर्धन के अनुसार स्वयं को कुछ भी करने के बिना आकार बदल देगा। नियंत्रण पहले से ही ऐसा करते हैं; ध्यान दें कि ग्रुपबॉक्स और ड्रॉपडाउन मेनू बड़े टेक्स्ट को रखने के लिए खुद का आकार कैसे बदलते हैं? –

+0

मुझे थोड़ा अलग मुद्दा है - ज्यादातर मामलों में मेरे फॉर्म 125% और 150% में बहुत बड़े हैं - दूसरों में, लेआउट सभी पागल है (रेडियो बटन एक-दूसरे के ऊपर खत्म होते हैं) - और इससे भी बदतर, ऐसा लगता है कि ऑटोस्केलमोड पहले से ही फ़ॉन्ट पर सेट है ... - मैंने डीपीआई, फ़ॉन्ट और इनहेरिट की कोशिश की है - किसी का कोई प्रभाव नहीं पड़ता है। मैं डॉक किए गए नियंत्रणों का उपयोग कर रहा हूं, लेकिन 125% में उनके बीच व्यापक अंतराल लगता है - कोई अन्य विचार? – BrainSlugs83

2

प्रदर्शन आकार, संकल्प, डीपीआई, बड़े फोंट, छोटे फोंट कुछ संभावित कारण भी हैं।

+0

थीम्स, स्थानीयकरण, और स्क्रीन प्रभाव अतिरिक्त संभावनाएं हैं, लेकिन हाँ, फ़ॉन्ट बढ़ाना मेरा अनुमान भी होगा। एक स्क्रीन शॉट हमें संभावनाओं को कम करने में मदद करेगा। –

+1

मशीनों पर संकल्प क्या है जहां यह होता है और जहां यह नहीं करता है? यदि आपके पास वास्तव में बड़ी स्क्रीन है तो विंडोज 7 आपके लिए डीपीआई सेट करता है। आपको अपने ऐप डीपीआई को जागरूक करने की जरूरत है। –

+0

@ केट - लगता है कि आपने मूल कारण की पहचान की है। समस्या वाले मशीन में एक बड़ा, वाइडस्क्रीन मॉनिटर है, और जब हमने चेक किया, तो सुनिश्चित करें कि कस्टम टेक्स्ट आकार 125% पर सेट किया गया था। इसे 100% तक सेट करने से समस्या दूर हो गई। –

2

मैं एक 7 विन उपयोगकर्ता में डिफ़ॉल्ट फ़ॉन्ट आकार "नियंत्रण कक्ष \ सभी नियंत्रण कक्ष आइटम \ प्रदर्शन"

आप रूपों पर निम्नलिखित गुण सेट "संवाद फिक्स्ड" करने के लिए निर्धारित किया है जब समायोजित जब एक ही मुद्दा था आपका फॉर्म: .AutoScaleMode = Font .utoSize = True .utoSizeMode = बढ़ोतरी केवल इसलिए कि विंडोज़ तत्वों के आकार के आधार पर आपके फॉर्म का आकार बदल सकता है।

AutoScaleMode=Font AutoSize=True AutoSizeMode=GrowOnly

संबंधित मुद्दे