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



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

746   3  

3 ответов:

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

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

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

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

видимого отобразить элемент.

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

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

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

измените второй Labelvisibility до Hiddden.

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

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

Hidden

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

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

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

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

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

Comments

    Ничего не найдено.