2011-07-19 7 views
7

मैं वर्टिकलकंटेंट एलाइनमेंट प्रॉपर्टी के साथ टेक्स्टबॉक्स के सामग्री को लंबवत रूप से केंद्रित करने की कोशिश कर रहा हूं लेकिन ऐसा कोई प्रभाव नहीं पड़ता है। पाठ शीर्ष पर रहता है। क्या कोई मुझे बता सकता है कि इसे कैसे करना है?सिल्वरलाइट: टेक्स्टबॉक्स वर्टिकलकंटेंट एलाइनमेंट = "सेंटर"

यहाँ मेरी कोड है:

<TextBox Grid.Column="1" 
    Grid.Row="0" 
    Width="200" 
    Height="28" 
    VerticalAlignment="Center" 
    VerticalContentAlignment="Center" /> 
+0

http://stackoverflow.com/questions/1491649/text-vertical-alignment-in-wpf-textblock –

उत्तर

7

टेक्स्टबॉक्स केंद्र को इसके पाठ को लंबवत बनाना संभव है। हालांकि, इसके लिए आपको अपने ControlTemplate को फिर से लागू करने की आवश्यकता होती है। एक उपयुक्त <UserControl.Resources> तत्व को

  1. कॉपी स्टाइल और TextBox Styles and Templates page on MSDN से ControlTemplate:

    ऐसा करने के लिए। (यह कंट्रोल टेम्पलेट वास्तव में एक सत्यापन टूलटिप के लिए है; कंट्रोल टेम्पलेट हम बदल देंगे स्टाइल के भीतर।)

  2. टेक्स्टबॉक्स के लिए शैली के भीतर ScrollViewer तत्व ढूंढें, और इसमें VerticalAlignment="Center" संपत्ति जोड़ें।

वैकल्पिक रूप से, आप संपत्ति ScrollViewer को

VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 

जोड़ सकते हैं। यह आपको VerticalContentAlignment प्रॉपर्टी का उपयोग करके अपने टेक्स्टबॉक्स की सामग्री के ऊर्ध्वाधर संरेखण को सेट करने की अनुमति दे सकता है।

यदि आप टेक्स्टबॉक्स की सामग्री के क्षैतिज संरेखण को भी बदलना चाहते हैं तो आप एक ही दृष्टिकोण का पालन कर सकते हैं।

-1

XAML कोड, निम्नलिखित पर्याप्त होना चाहिए सही है:

<TextBlock Text="Centered Text" VerticalAlignment="Center" /> 

आप अपने ग्रिड के बाहर है कि कोड की कोशिश कर सकते हैं?

आपके ग्रिड पर परिभाषित विशेषताओं की जांच करें, इससे शायद आपके व्यवहार का कारण बन जाएगा। क्या आप पूरा एक्सएएमएल कोड पोस्ट कर सकते हैं?

+0

देखें क्योंकि आपका कोड टेक्स्टब्लॉक उत्पन्न करता है जिसमें टेक्स्ट का आकार बिल्कुल सही होता है जिसमें टेक्स्ट केंद्रित होगा। हालांकि, अगर मैं _TextBox_ का उपयोग करता हूं और ऊंचाई को 30 तक सेट करता हूं तो समस्या अभी भी वहां है। –

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