Was sind die Unterschiede zwischen Visibility.Collapsed
und Visibility.Hidden
in WPF?
Antworten
Zu viele Anzeigen?Der Unterschied besteht darin, dass Visibility.Hidden
die Steuerung verbirgt, aber den Platz, den sie im Layout einnimmt, reserviert. Es rendert also Leerzeichen anstelle der Steuerung. Visibility.Collapsed
rendert die Steuerung nicht und reserviert nicht den Platz für Leerzeichen. Der Platz, den die Steuerung einnehmen würde, wird "zusammengebrochen", daher der Name.
Der genaue Text von der MSDN:
Collapsed: Das Element wird nicht angezeigt und es wird auch kein Platz dafür im Layout reserviert.
Hidden: Das Element wird nicht angezeigt, aber Platz für das Element im Layout wird reserviert.
Visible: Das Element wird angezeigt.
Siehe: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx
Sichtbarkeit : Versteckt Vs Zusammengeklappt
Betrachten Sie den folgenden Code, der nur drei Labels
zeigt und das zweite Label
mit der Sichtbarkeit
als Zusammengeklappt
hat:
<Setter Property="Height" Value="30" />
<Setter Property="Margin" Value="0"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="1" />
Ausgabe Zusammengeklappt:
Ändern Sie jetzt die Sichtbarkeit
des zweiten Labels
zu Versteckt
.
Ausgabe Versteckt:
Ganz einfach.
Auch wenn der Thread ein wenig alt ist, für diejenigen, die immer noch nach den Unterschieden suchen:
Abgesehen von dem Layout (Platz), der im Verborgenen eingenommen wird und im Zusammengeklappten nicht, gibt es einen weiteren Unterschied.
Wenn wir benutzerdefinierte Steuerelemente innerhalb dieses Hauptsteuerelements 'Zusammengeklappt' haben, werden beim nächsten Mal, wenn wir es auf Sichtbar setzen, alle benutzerdefinierten Steuerelemente "geladen". Es wird nicht vorgeladen, wenn das Fenster gestartet wird.
Was das 'Verborgene' betrifft, werden alle benutzerdefinierten Steuerelemente + Hauptsteuerelement geladen, die wir als versteckt festgelegt haben, wenn das "Fenster" gestartet wird.