मैं .NETCF (विंडोज मोबाइल) Graphics
कक्षा और DrawString()
विधि का उपयोग स्क्रीन पर एक वर्ण प्रस्तुत करने के लिए कर रहा हूं।ग्राफिक्स से केंद्र टेक्स्ट आउटपुट। ड्रॉस्ट्रिंग()
समस्या यह है कि मैं इसे ठीक से केंद्रित नहीं कर पा रहा हूं। इससे कोई फर्क नहीं पड़ता कि मैंने स्ट्रिंग रेंडर के स्थान के वाई समन्वय के लिए क्या सेट किया है, यह हमेशा उससे कम आता है और पाठ आकार जितना अधिक होगा उतना ही अधिक ऑफसेट होगा।
उदाहरण के लिए, पाठ का आकार 12 पर, ऑफसेट बारे में 4 है, लेकिन 32 ऑफसेट पर के बारे में 10
मैं चरित्र करने के लिए खड़ी आयत के सबसे तक ले उस में तैयार किया जा रहा है और केंद्रित हो चाहता हूँ क्षैतिज। मेरा मूल कोड यहाँ है। this
उपयोगकर्ता नियंत्रण यह में तैयार किया जा रहा है संदर्भित कर रहा है।
Graphics g = this.CreateGraphics();
float padx = ((float)this.Size.Width) * (0.05F);
float pady = ((float)this.Size.Height) * (0.05F);
float width = ((float)this.Size.Width) - 2 * padx;
float height = ((float)this.Size.Height) - 2 * pady;
float emSize = height;
g.DrawString(letter, new Font(FontFamily.GenericSansSerif, emSize, FontStyle.Regular),
new SolidBrush(Color.Black), padx, pady);
हाँ, मैं जानता हूँ कि लेबल नियंत्रण है कि मैं बजाय इस्तेमाल कर सकते हैं और उस के साथ केंद्रित सेट वहाँ है, लेकिन मैं वास्तव में के साथ मैन्युअल रूप से ऐसा करने की जरूरत है Graphics
कक्षा।
सामान खींचने का दूसरा तरीका दिखाने के लिए धन्यवाद, यह वास्तव में मुझे केंद्र संरेखण समस्या से बाहर निकलने में मदद करता है TextRenderer.DrawText अधिक सटीक है, तो एक साधारण egraphics.drawstring बहुत धन्यवाद है, मुझसे वोट दें :) –