मेरे पास दो टेक्स्टब्लॉक नियंत्रण (स्टैक्ड) और फिर कुछ अन्य तत्वों के साथ एक WPF डेटा टेम्पलेट है। कुछ जटिल लेआउट कोड के कारण, मुझे दो टेक्स्टब्लॉक तत्वों की ऊंचाई जानने की आवश्यकता है ताकि मैं कुछ फैंसी कनेक्टर लाइनों को खींच सकूं, और अन्य नियंत्रणों को लाइन कर सकूं,इसे प्रस्तुत करने से पहले WPF में टेक्स्टब्लॉक के आकार को कैसे मापूं?
यदि मुझे टेक्स्टब्लॉक में जाने वाला टेक्स्ट पता है , और मैं फ़ॉन्ट, इत्यादि जानता हूं, क्या कोई तरीका है कि मैं वास्तव में उन्हें प्रस्तुत किए बिना इन टेक्स्टब्लॉक की ऊंचाई की गणना या माप सकता हूं?
+1, लेकिन ध्यान दें सामान्य टाइपफेस और फ़ॉन्ट आकार के अलावा, वहाँ भी एक (विरासत में मिला है) संलग्न संपत्ति है कि [फ़ॉन्ट हिंट को प्रभावित करता है] (है कि http://blogs.msdn.com/b/text /archive/2009/08/24/wpf-4-0-text-stack-improvements.aspx) (चाहे पूरे पिक्सल को संरेखित करें या नहीं), और यह पाठ की चौड़ाई को प्रभावित करता है। संलग्न संपत्ति 'TextOptions.FormattingMode' है - सुनिश्चित करें कि जिस वस्तु को आप माप रहे हैं उस पर इस प्रॉपर्टी का मान उस ऑब्जेक्ट पर मान से मेल खाता है जो आप प्रस्तुत कर रहे हैं (यदि वे समान नहीं हैं)। – Cameron
बस एक ही समस्या थी और बस 'textblock.Measure (नया आकार()) को कॉल करना; 'पर्याप्त मात्रा में। मुझे 'textblock.Measure (नया आकार (डबल। पॉजिटिव इंफिनिटी, डबल। पॉजिटिव इंफिनिटी)) का उपयोग करना था;' टेक्स्टब्लॉक के लिए परिणाम प्राप्त करने के लिए। डिस्कार्ड साइज ' – metacircle
याद रखें, 'मिनविड्थ' को 0 पर सेट करने की आवश्यकता है, और 'मैक्सविड्थ' 'मापने से पहले सकारात्मक इन्फिनिटी पर सेट करें, अन्यथा यह उन मानों से कैप्चर किया जाएगा। – zmechanic