2008-11-04 13 views
48

इस प्रश्न का जावा संस्करण अभी उत्तर दिया गया था, और, ठीक है, मुझे नहीं पता कि यह .NET में कैसे करें।सी # में एक स्ट्रिंग की प्रदर्शन चौड़ाई की गणना करें?

तो आप सी #/.net में स्ट्रिंग की प्रदर्शन चौड़ाई की गणना कैसे करते हैं?

उत्तर

53

आपको जावा प्रश्न में मौजूद इस प्रश्न में एक ही समस्या है - पर्याप्त जानकारी नहीं! यह WinForms और WPF के बीच अलग होगा।

WinForms के लिए: Graphics.MeasureString

WPF के लिए मैं यकीन नहीं है, लेकिन मुझे लगता है कि यह सही तरह से आप पाठ ड्राइंग कर रहे हैं पर निर्भर करेगा ...

+18

WPF में आप FormattedText, http://msdn.microsoft.com/en-us/library/system.windows.media.formattedtext.aspx का उपयोग करेंगे। –

+0

आप एएसपी.नेट में ऐसा कैसे करेंगे? – Shimmy

+3

@Shimmy: ठीक है एएसपी.नेट में यह पूरी तरह से ब्राउज़र पर निर्भर करेगा। यह वास्तव में ऐसी चीज नहीं है जिसे आप किसी वेब ऐप में करने का प्रयास करेंगे - आप इसके बजाय फ़ॉर्मेटिंग को नियंत्रित करने के लिए सीएसएस का उपयोग करेंगे। –

9

Graphics.MeasureString लेकिन इसकी एक सा भद्दा, जैसा कि समझाया गया है और इसमें सुधार हुआ है; here

4

आप ग्राफिक्स.मेजरस्ट्रिंग का उपयोग करेंगे।

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

+0

WinForms नियंत्रण 'CreateGraphics' विधि का पर्दाफाश करता है जिसका उपयोग पहली बार 'ग्राफिक्स' ऑब्जेक्ट बनाने के लिए किया जा सकता है (इसका कन्स्ट्रक्टर निजी है) – nateirvin

61

एक वैकल्पिक Windows Forms के लिए स्थिर TextRenderer.MeasureText तरीका है।

हालांकि पूर्णांक आकारों तक सीमित है, यह (TextRenderer.DrawText के साथ मिलकर) ग्राफिक्स की तुलना में अधिक सटीक और उच्च गुणवत्ता वाले क्लीयरटाइप टेक्स्ट प्रस्तुत करता है। मेजरस्ट्रिंग/ड्रास्ट्रिंग जोड़ी।

+0

कूल। पहले TextRenderer के बारे में कभी नहीं सुना। – MusiGenesis

+2

संदर्भ के लिए: [MSRN पर TextRenderer.MeasureText] (http://msdn.microsoft.com/en-us/library/system.windows.forms.textrenderer.measuretext.aspx) –

+0

यह थ्रेड देखें: http: // stackoverflow ।कॉम/प्रश्न/6704923/टेक्स्टरेन्डर-मापनटेक्स्ट-एंड-ग्राफिक्स-मापनस्ट्रिंग-मिस्चैच-इन-साइज और यह ब्लॉग पोस्ट: http://blogs.msdn.com/b/jfoscoding/archive/2005/10/13/480632 अधिक जानकारी के लिए .aspx । ऐसा लगता है कि TextRenderer.MeasureText का उपयोग नेट WinForms के अधिकांश उपयोग के लिए लागू विधि है। ऊपरी मामले में – RenniePet

21

डब्ल्यूपीएफ में आप FormattedText का उपयोग करेंगे।

+0

पाठ ठीक से मापा नहीं है। – Ragavan

1

ग्राफिक्स। मेजरस्ट्रिंग ([मापने के लिए पाठ], [पाठ को मापने के लिए इस्तेमाल किया जा रहा फ़ॉन्ट]);

जिसके परिणामस्वरूप वस्तु निम्नलिखित प्रदान करेगा:

properties available

MeasureString के अन्य भार के भी उपलब्ध है।

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