Der Unterschied zwischen Visibility.Collapsed und Visibility.Hidden
-
23-08-2019 - |
Frage
Was sind Unterschiede zwischen Visibility.Collapsed
und Visibility.Hidden
in WPF?
Lösung
Der Unterschied besteht darin, dass Visibility.Hidden
die Kontrolle versteckt, behält sich aber der Raum es im Layout einnimmt. So macht es Leerzeichen anstelle der Steuerung.
Visibilty.Collapsed
gibt nicht das Steuer und nicht das Leerzeichen reservieren. Der Raum der Kontrolle würde sich ‚zusammengebrochen‘, daher der Name.
Der genaue Text aus dem MSDN:
Komprimiert . Setzen Sie das Element nicht angezeigt werden, und dies nicht tut Reserveraum für sie in dem Layout
Versteckt . Setzen Sie das Element nicht angezeigt, sondern Reserveraum für das Element in dem Layout
Visible . Zeigen Sie das Element
Siehe auch: http://msdn.microsoft.com/ en-us / library / system.windows.visibility.aspx
Andere Tipps
Sichtbarkeit: Verdeckt Vs Komprimiert
Betrachten Sie folgenden Code, der zeigt nur three Labels
und hat zweiten Label
visibility
als 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>
Ausgabe Komprimiert:
Sie nun die zweite Label
visibility
ändern Hiddden
.
<Label Width="50" Content="Second" Visibility="Hidden"/>
Ausgabe Verborgen:
So einfach wie das.
Auch wenn ein bisschen alter Thread, für diejenigen, die nach wie vor für die Unterschiede suchen:
Neben Layout (Raum) in Hidden genommen und nicht in Komprimiert genommen, es ist ein weiterer Unterschied.
Wenn wir benutzerdefinierte Steuerelemente innerhalb dieses ‚Komprimiert‘ Haupt-Kontrolle, das nächste Mal haben wir es sichtbar, wird es „load“ alle benutzerdefinierten Kontrollen. Es wird nicht vorladen, wenn Fenster gestartet wird.
Wie für Verborgene, wird es alle benutzerdefinierten Steuerelemente + Hauptsteuer laden, die wir als versteckte gesetzt, wenn das „Fenster“ gestartet wird.