WPF में Visibility.Collapsed
और क्या अंतर हैं Visibility.Hidden
?
WPF में Visibility.Collapsed
और क्या अंतर हैं Visibility.Hidden
?
जवाबों:
अंतर यह है कि Visibility.Hidden
नियंत्रण को छुपाता है, लेकिन लेआउट में रहने वाले स्थान को आरक्षित करता है। इसलिए यह नियंत्रण के बजाय व्हॉट्सएप को प्रस्तुत करता है।
Visibilty.Collapsed
नियंत्रण प्रदान नहीं करता है और व्हॉट्सएप आरक्षित नहीं करता है। जिस स्थान पर नियंत्रण होगा वह 'ढह गया' है, इसलिए नाम।
MSDN से सटीक पाठ:
संकुचित : तत्व प्रदर्शित न करें , और लेआउट में इसके लिए स्थान आरक्षित न करें।
छिपी : तत्व प्रदर्शित न करें, लेकिन लेआउट में तत्व के लिए स्थान आरक्षित करें।
दर्शनीय : तत्व प्रदर्शित करें।
देखें: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx
दृश्यता: छिपा हुआ बनाम ढह गया
निम्नलिखित कोड पर विचार करें जो केवल दिखाता है three Labels
और दूसरे के Label
visibility
रूप में है Collapsed
:
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Center">
<StackPanel.Resources>
<Style TargetType="Label">
<Setter Property="Height" Value="30" />
<Setter Property="Margin" Value="0"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="1" />
</Style>
</StackPanel.Resources>
<Label Width="50" Content="First"/>
<Label Width="50" Content="Second" Visibility="Collapsed"/>
<Label Width="50" Content="Third"/>
</StackPanel>
उत्पादन ढह गया:
अब दूसरे Label
visibility
को बदलें Hiddden
।
<Label Width="50" Content="Second" Visibility="Hidden"/>
आउटपुट छिपा हुआ:
इतना सरल है।
भले ही थोड़ा पुराना धागा, उन लोगों के लिए जो अभी भी मतभेदों की तलाश कर रहे हैं:
लेआउट में (स्पेस) के अलावा हिडन में लिया गया है और Collapsed में नहीं लिया गया है, एक और अंतर है।
यदि हमारे पास इस 'Collapsed' मुख्य नियंत्रण के अंदर कस्टम नियंत्रण हैं, तो अगली बार जब हम इसे Visible पर सेट करते हैं, तो यह अन्य कस्टम नियंत्रणों को "लोड" करेगा। विंडो शुरू होने पर यह प्री-लोड नहीं होगा।
'हिडन' के लिए, यह सभी कस्टम नियंत्रण + मुख्य नियंत्रण को लोड करेगा जिसे हम "विंडो" शुरू होने पर छिपे हुए सेट करते हैं।