2010-03-26 10 views
11

मैं 0.मैं एक WPF ग्रिड में एक पंक्ति कैसे छिपा सकता हूं?

को Height संपत्ति की स्थापना मैं कुछ एक Visible संपत्ति के लिए समान उम्मीद कर रहा था द्वारा एक WPF ग्रिड में एक पंक्ति छुपा दिया गया है।

क्या पंक्ति को छिपाने का कोई और उचित तरीका है?

उत्तर

26

आप पंक्ति की सामग्री की "दृश्यता" पर दृश्यता सेट कर सकते हैं। यह केवल तभी काम करेगा जब रोडिफिनिशन की ऊँचाई संपत्ति "ऑटो" पर सेट की जाती है ताकि पंक्ति के आकार इसकी सामग्री के आधार पर हो।

उदाहरण के लिए,

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 

    <Border Grid.Row="0" BorderThickness="1" BorderBrush="Red"><TextBlock>Visible Row</TextBlock></Border> 
    <Border Grid.Row="1" BorderThickness="1" BorderBrush="Black" Visibility="Collapsed"><TextBlock>Hidden Row</TextBlock></Border> 
    <Border Grid.Row="2" BorderThickness="1" BorderBrush="Red"><TextBlock>Visible Row</TextBlock></Border> 
</Grid> 
+0

मैं वास्तव में क्या देख रहा था। धन्यवाद। –

+1

यदि आपके पास एकाधिक कॉलम हैं तो आप कैसे करेंगे? प्रत्येक तत्व को छिपाने के लिए यह बहुत व्यावहारिक नहीं है ... –

+1

क्लेमेंट- पंक्ति में प्रत्येक तत्व को कंटेनर में एक अन्य ग्रिड में लपेटें, और कंटेनर की दृश्यता को आसानी से दिखाएं/छुपाएं/पतन करें। – Kurren

3

मैं वास्तव में सिर्फ एक ही प्रश्न पूछा कुछ दिनों के पहले, एक नज़र यहाँ ले:

Hide grid row in WPF

मूल रूप से ऑटो के लिए RowHeight करना और फिर स्थापना दृश्यता = "संक्षिप्त" आपके लिए पंक्ति छिपाएगी। मेरे पास एकमात्र मुद्दा मार्जिन था, लेकिन वह मामूली था। कम से कम पंक्ति छिपी हुई है।

+1

मार्जिन के बारे में अच्छा बिंदु, धन्यवाद। –

1

बस इस कार्य करें:

XAML: पतन के लिए

<Grid.RowDefinitions> 
    <RowDefinition Height="1*" x:Name="name1" /> 
    <RowDefinition Height="Auto" x:Name="name2" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
</Grid.RowDefinitions> 

सी #: दृश्यता के लिए

name1.Height = new GridLength(0); 
name2.Height = new GridLength(0); 

सी #:

name1.Height = new GridLength(1, GridUnitType.Star); 
name2.Height = GridLength.Auto; 
संबंधित मुद्दे