Разница между видимостью.Свернутый и видимость.Скрытый

StackOverflow https://stackoverflow.com/questions/886742

  •  23-08-2019
  •  | 
  •  

Вопрос

В чем различия между Visibility.Collapsed и Visibility.Hidden в WPF?

Это было полезно?

Решение

Разница в том, что Visibility.Hidden скрывает элемент управления, но резервирует место, которое он занимает в макете.Таким образом, он отображает пробелы вместо элемента управления.Visibilty.Collapsed не отображает элемент управления и не резервирует пробел.Пространство, которое будет занимать элемент управления, "свернуто", отсюда и название.

Точный текст из MSDN:

Рухнул:Не отображайте элемент и не резервируйте для него место в макете.

Скрытый:Не отображайте элемент, но зарезервируйте место для него в макете.

Видимый:Отобразите элемент.

Видишь: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx

Другие советы

Видимость :Скрытый Против Свернутого

Рассмотрим следующий код, который показывает только three Labels и имеет вторую Label visibility как 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>

Выходные данные Свернуты:

Collapsed

Теперь измените второй Label visibility Для Hiddden.

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

Скрытый вывод:

Hidden

Вот так просто.

Даже несмотря на то, что это немного старая тема, для тех, кто все еще ищет отличия:

Помимо расположения (пространства), взятого в Скрытом виде и не взятого в свернутом, есть еще одно отличие.

Если у нас есть пользовательские элементы управления внутри этого "Свернутого" основного элемента управления, то в следующий раз, когда мы установим для него значение Visible, он "загрузит" все пользовательские элементы управления.Он не будет предварительно загружен при запуске window.

Что касается "Скрытого", то он загрузит все пользовательские элементы управления + основной элемент управления, который мы устанавливаем как скрытый при запуске "окна".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top