प्रदर्शन आकार के लिए आप Screen
.PrimaryScreen.Bounds.Size
(या Screen.GetBounds(myform)
) चाहते हैं।
आप डीपीआई चाहते हैं, Graphics की DpiX और DpiY गुण का उपयोग करें:
PointF dpi = PointF.Empty;
using(Graphics g = this.CreateGraphics()){
dpi.X = g.DpiX;
dpi.Y = g.DpiY;
}
ओह, रुको! आप वास्तविक चाहते थे, एक शासक को मॉनीटर तक बढ़ाएं और मापें, आकार ?! नहीं। किसी भी ओएस सेवाओं का उपयोग करना संभव नहीं है। ओएस मॉनिटर के वास्तविक आयामों को नहीं जानता है, या उपयोगकर्ता ने कैलिब्रेटेड कैसे किया है। इनमें से कुछ जानकारी सैद्धांतिक रूप से पता लगाने योग्य है, लेकिन यह ओएस के लिए विश्वसनीय रूप से इसका उपयोग करने के लिए पर्याप्त निर्धारक नहीं है, इसलिए ऐसा नहीं होता है।
आसपास के काम के रूप में, आप कुछ चीजों को आजमा सकते हैं।
- आप स्थापित मॉनीटर डिवाइस की डिस्प्ले स्ट्रिंग से पूछताछ करने का प्रयास कर सकते हैं (मुझे यकीन नहीं है कि यह कैसे करें) और देखें कि क्या आप उसमें से एक समझदार आकार को पार्स कर सकते हैं। उदाहरण के लिए, मॉनीटर "ValueBin E17p" हो सकता है, और आप कम कर सकते हैं कि यह 17 "मॉनीटर है। बेशक, यह डिस्प्ले स्ट्रिंग" प्लग और प्ले मॉनिटर "होने की संभावना है। यह योजना सुंदर स्केची है सबसे अच्छे रूप में।
- आप उपयोगकर्ता क्या आकार की निगरानी वे कह सकते हैं। शायद को पता लग जाएगा।
एक बार जब आप जानते हैं (या लगता क्या आप जानते हैं) की निगरानी के विकर्ण आकार, आप अपने भौतिक पहलू अनुपात को खोजने की जरूरत है।दोबारा, कुछ चीजें:
- मान लें कि वर्तमान पिक्सेल पहलू अनुपात मॉनीटर के भौतिक पहलू अनुपात से मेल खाता है। यह मानता है कि (ए) उपयोगकर्ता ने एक प्रस्ताव चुना है जो उनके मॉनिटर के लिए आदर्श है, और (बी) मॉनीटर में स्क्वायर पिक्सेल है। मुझे वर्तमान उपभोक्ता-उन्मुख कंप्यूटर मॉनिटर के बारे में पता नहीं है जिसमें स्क्वायर पिक्सल नहीं हैं, लेकिन पुराने लोगों ने किया और नए हो सकते हैं।
- उपयोगकर्ता से पूछें। शायद वे जान लेंगे।
एक बार जब आप जानते हैं (या लगता क्या आप जानते हैं) क्या मॉनिटर के विकर्ण आकार और शारीरिक पहलू अनुपात है, तो आप आप इसे शारीरिक चौड़ाई और ऊंचाई है गणना कर सकते हैं। एक + बी = सी , तो कुछ गणना यह आप पर दे देंगे अच्छा:
आप पता चला कि यह एक 17 "मॉनिटर है, और इसके वर्तमान संकल्प 1280 है यदि x 1024:
+ 1024 = 2686976
Sqrt (2686976) = 1639,1998047828092637409837247032
17 "* 1280/1639.2 = 13.274768179599804782820888238165"
17 "* 10 24/1639.2 = 10.619814543679843826256710590532 "
यह भौतिक चौड़ाई 13.27" और भौतिक ऊंचाई 10.62 पर रखता है "। इससे पिक्सेल 13.27 "/ 1280 = 10.62"/1024 = 0.01037 "या लगभग 0.263 मिमी
बेशक, यदि उपयोगकर्ता के पास उचित समाधान नहीं है, तो यह सब अमान्य है, मॉनिटर में गैर- स्क्वायर पिक्सल, या यह एक पुराना एनालॉग मॉनीटर है और पूरे भौतिक स्क्रीन को भरने के लिए डिस्प्ले के लिए नियंत्रण ठीक से समायोजित नहीं किए जाते हैं। या बदतर, यह प्रोजेक्टर हो सकता है।
अंत में, आप प्रदर्शन करने से सबसे अच्छा हो सकते हैं एक अंशांकन चरण जहां आपके पास उपयोगकर्ता है, वास्तव में स्क्रीन पर शासक को पकड़ें, और आपके लिए कुछ आकार का आकलन करें। आप:
- क्या उपयोगकर्ता किसी भी दो अंक (या एक सेंटीमीटर) के अलावा माउस पर क्लिक करता है।
- स्क्रीन पर एक बॉक्स बनाएं और उपयोगकर्ता अपनी ऊंचाई को समायोजित करने के लिए ऊपर और नीचे तीर दबाएं, और बाएं और दाएं तीर अपनी चौड़ाई को समायोजित करने के लिए दबाएं, जब तक कि बॉक्स उनके अनुसार एक इंच (या सेंटीमीटर) वर्ग न हो शासक।
- स्क्रीन पर एक बॉक्स बनाएं और उपयोगकर्ता आपको बताए कि प्रत्येक आयाम में कितने इंच/सेंटीमीटर हैं।
कोई फर्क नहीं पड़ता कि आप क्या करते हैं, अपने परिणामों को 100% सटीक होने की उम्मीद न करें। आपके लिए (या उपयोगकर्ता) खेलने के लिए बहुत सारे कारक हैं, हर बार यह बिल्कुल सही करने के लिए।
ध्यान रखें कि 96 डीपीआई आमतौर पर सटीक के लिए बहुत करीब है। गैर-प्रक्षेपित स्क्रीन पर आधुनिक पिक्सल लगभग 0.25 मिमी होते हैं, देते हैं या लेते हैं, इसलिए आप आम तौर पर 100 भौतिक पिक्सल प्रति इंच के साथ समाप्त होते हैं, देते हैं या लेते हैं, यदि मॉनीटर अपने मूल रिज़ॉल्यूशन पर सेट होता है।(बेशक, यह एक बड़ा सामान्यीकरण है और सभी मॉनीटर पर लागू नहीं होता है। उदाहरण के लिए, यदि मुझे चश्मा सही तरीके से याद हैं, तो ईई पीसी आकार में लगभग 0.1 9 मिमी है।)
यह यह सिर्फ हो जाता है की तरह जो कुछ खिड़कियों डीपीआई करने के लिए सेट है, जो आम तौर पर स्क्रीन आकार और संकल्प की परवाह किए बिना 96dpi दिया जाएगा लग रहा है। –
ग्राफिक्स का यह उदाहरण वापस आएगा (पी डैडी उत्तर देखें)। पी/Invoke के लिए कोई ज़रूरत नहीं है। –