能见度之间有什么区别?塌陷和能见度。隐藏在WPF中?


当前回答

一句话:隐藏控件仍然占用空间,而折叠控件则不会。

其他回答

一句话:隐藏控件仍然占用空间,而折叠控件则不会。

虽然有点老,但对于那些仍然在寻找差异的人来说:

除了在隐藏中采用的布局(空间)和在折叠中不采用的布局之外,还有另一个区别。

如果我们在这个“折叠”主控件中有自定义控件,下次我们将其设置为可见时,它将“加载”所有自定义控件。当窗口启动时,它不会预加载。

至于“隐藏”,它将加载所有自定义控件+主控件,当“窗口”启动时,我们设置为隐藏。

可见性:隐藏Vs折叠

考虑下面的代码,它只显示三个标签,并且有第二个标签可见性为collapse:

 <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>

输出崩溃:

现在将第二个Label可见性更改为hidden。

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

输出隐藏:

就这么简单。

区别在于能见度。Hidden隐藏控件,但保留其在布局中占用的空间。因此它呈现空白而不是控件。 羽毛。“折叠”不呈现控件,也不保留空白。控件所占用的空间是“折叠的”,因此得名。

MSDN的确切文本:

折叠:不显示该元素,也不在布局中为其保留空间。 隐藏:不显示元素,但在布局中为元素保留空间。 可见:显示元素。

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