WPF arasındaki Visibility.Collapsedve Visibility.Hiddenarasındaki farklar nelerdir ?
WPF arasındaki Visibility.Collapsedve Visibility.Hiddenarasındaki farklar nelerdir ?
Yanıtlar:
Fark, Visibility.Hiddenkontrolü gizlemesidir, ancak düzende kapladığı alanı ayırır. Böylece kontrol yerine boşluk oluşturur.
Visibilty.Collapsedkontrolünü kılmaz ve boşluk ayırmaz. Kontrolün alacağı alan 'daraltılmış', dolayısıyla isim.
MSDN'den tam metin:
Daraltılmış : Öğeyi görüntülemeyin ve mizanpajda yer ayırmayın.
Gizli : Öğeyi görüntüleme, ancak mizanpajdaki öğeye yer ayırma.
Görünür : Öğeyi görüntüler.
Bkz. Http://msdn.microsoft.com/tr-tr/library/system.windows.visibility.aspx
Görünürlük: Gizli ve Daraltılmış
Kod sadece gösterileri izleyen düşünün three Labelsve ikinci sahiptir Label visibilityolarak 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>
Çıktı Daraltı:
Şimdi ikincisini Label visibilityolarak değiştirin Hiddden.
<Label Width="50" Content="Second" Visibility="Hidden"/>
Çıktı Gizli:
Kadar basit.
Biraz eski iplik olmasına rağmen, hala farklılıkları arayanlar için:
Gizli'de alınan ve Daraltılmış'ta alınmayan düzen (boşluk) dışında bir fark daha var.
Bu 'Daraltılmış' ana kontrolün içinde özel kontrollerimiz varsa, bunu bir sonraki Görünür olarak ayarladığımızda, tüm özel kontrolleri "yükleyecektir". Pencere başlatıldığında önceden yüklenmez.
'Gizli' ise, "pencere" başlatıldığında gizli olarak ayarladığımız tüm özel kontrolleri + ana kontrolü yükleyecektir.