WPF arasındaki Visibility.Collapsed
ve Visibility.Hidden
arasındaki farklar nelerdir ?
WPF arasındaki Visibility.Collapsed
ve Visibility.Hidden
arasındaki farklar nelerdir ?
Yanıtlar:
Fark, Visibility.Hidden
kontrolü gizlemesidir, ancak düzende kapladığı alanı ayırır. Böylece kontrol yerine boşluk oluşturur.
Visibilty.Collapsed
kontrolü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 Labels
ve ikinci sahiptir Label
visibility
olarak 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
visibility
olarak 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.