2009-02-09 11 views
11

कहते हैं कि मैं इस जैसे एक साधारण लेआउट करते हैं:डब्ल्यूपीएफ: स्पेस पर कब्जा न करने के लिए खाली टेक्स्टब्लॉक कैसे करें?

<StackPanel> 
    <TextBlock Text="{Binding Path=Title}" /> 
    <TextBlock Text="{Binding Path=ShortDescription}" /> 
    <TextBlock Text="{Binding Path=LongDescription}" /> 
</StackPanel> 

अब जब मैं ShortDescription शून्य पर सेट या रिक्त स्ट्रिंग है वहाँ अभी भी दूसरे TextBlock के स्थान पर एक अंतर है। क्या कब्जे वाले स्थान से रिक्त टेक्स्टब्लॉक को रोकने के लिए कुछ संपत्ति है? या मुझे कुछ अन्य नियंत्रण का उपयोग करना चाहिए?

धन्यवाद।

उत्तर

19

आप टेक्स्टबॉक्स की दृश्यता को "संक्षिप्त" में सेट करना चाहते हैं।

दृश्यता हो सकता है या तो:
दर्शनीय - स्व व्याख्यात्मक
छिपा - अदृश्य लेकिन अभी भी अंतरिक्ष
संक्षिप्त किए तक ले जाता है - अदृश्य और कोई जगह नहीं

संपादित तक ले जाता है: आप शायद ट्रिगर सेट करना चाहिए, जैसे इसलिए:

<Trigger Property="Text" Value="{x:Null}"> 
    <Setter Property="Visibility" Value="Collapsed"/> 
</Trigger> 
+1

यह केवल तभी काम करेगा यदि मान शून्य है, यदि आप शून्य _or_ खाली स्ट्रिंग पर दृश्यता सेट करना चाहते हैं, तो आप कनवर्टर का उपयोग करना चाहेंगे। [यह धागा] (https://stackoverflow.com/questions/5573864/how-to-hide-the-empty-textblock) चर्चा करता है कि यह कैसे करें। –

9

आप इस की कोशिश करना चाहते हो सकता है:

<TextBlock.Style> 
    <Style TargetType="{x:Type TextBlock}"> 
     <Style.Triggers> 
      <Trigger Property="Text" Value=""> 
       <Setter Property="Visibility" Value="Collapsed"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</TextBlock.Style> 

यह एक खाली/खाली बाध्यकारी के आधार पर रिक्त स्थान समस्या को ठीक करना चाहिए।

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