2012-12-17 12 views
6

मैं फ़्रेम ग्रंथों (विंडोज़ फ़ॉर्म का उपयोग करके) प्राप्त करने के लिए कोशिश कर रहा हूँ, जैसे लगता है कैसे:सी # में स्ट्रिंग की चौड़ाई (पिक्सेल में)

enter image description here

ऊंचाई हमेशा एक ही है क्योंकि मेरे तार कम कर रहे हैं 20 अक्षर से अधिक चौड़ाई के बारे में क्या? क्या इसे स्वचालित रूप से प्राप्त करने का कोई तरीका है?

+0

संभावित डुप्लिकेट: http://stackoverflow.com/questions/7714022/how-to-get-a-string-width – Default

+0

संभावित डुप्लिकेट [मैं स्ट्रिंग लम्बाई को पिक्सेल इकाई में कैसे परिवर्तित कर सकता हूं?] (Http: //stackoverflow.com/questions/451903/how-can-i-convert-a-string-length-to-a-pixel-unit) –

उत्तर

10

उपयोग Graphics.MeasureString()

MSDN से: http://msdn.microsoft.com/en-us/library/6xe5hazb.aspx

private void MeasureStringMin(PaintEventArgs e) 
{ 
    // Set up string. 
    string measureString = "Measure String"; 
    Font stringFont = new Font("Arial", 16); 

    // Measure string. 
    SizeF stringSize = new SizeF(); 
    stringSize = e.Graphics.MeasureString(measureString, stringFont); 

    // Draw rectangle representing size of string. 
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height); 

    // Draw string to screen. 
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0)); 
} 
4

आप पेंट eventhandler से निपटने का मन नहीं है, तो आप TextRenderer वर्ग की कोशिश कर सकते। इसमें एक स्थैतिक विधि है जो उपर्युक्त उत्तर में "MeasureString" विधि के समान है। इस वर्ग में इसे हालांकि MeasureText कहा जाता है।

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