Różnica między widocznością.Upadł i widoczność.Ukryty

Jakie są różnice między Visibility.Collapsed i Visibility.Hidden w WPF?

Author: SliverNinja - MSFT, 2009-05-20

3 answers

Różnica polega na tym, że Visibility.Hidden ukrywa kontrolkę, ale rezerwuje miejsce, które zajmuje w układzie. Renderuje więc białe znaki zamiast kontrolki. Visibilty.Collapsed nie renderuje kontrolki i nie rezerwuje białych znaków. Przestrzeń, którą zajmie sterowanie, jest "zwinięta", stąd nazwa.

Dokładny tekst z MSDN:

Zwinięty: nie wyświetla elementu i nie rezerwuje dla niego miejsca w układzie.

Hidden : nie wyświetla element, ale zastrzega sobie miejsce na element w układzie.

Visible : wyświetla element.

Zobacz: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx

 379
Author: Razzie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-29 14:41:32

Visibility: Hidden Vs Collapsed

Rozważ następujący kod, który pokazuje tylko three Labels i ma drugie Label visibility jako 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>

Wyjście Zwinięte:

Zawalone

Teraz zmień drugi Label visibility do Hiddden.

<Label Width="50" Content="Second" Visibility="Hidden"/>

Wyjście Ukryte:

Ukryty

to takie proste.

 43
Author: Kylo Ren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-07 07:15:06

Choć trochę stary wątek, dla tych, którzy wciąż szukają różnic:

Oprócz układu (spacji) wziętego w ukryciu, a nie wziętego w zwinięciu, istnieje inna różnica.

Jeśli mamy niestandardowe kontrolki wewnątrz tej "zwiniętej" głównej kontrolki, następnym razem, gdy ustawimy ją na widoczną, "załaduje" wszystkie niestandardowe kontrolki. Nie wczytuje się wstępnie po uruchomieniu okna.

Jeśli chodzi o 'Hidden', załaduje wszystkie niestandardowe kontrolki + sterowanie główne, które ustawiamy jako ukryte, gdy "okno" jest uruchomione.

 6
Author: scsfdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-12 00:00:06