311

Visibility.CollapsedWPF和WPF之间有什么区别Visibility.Hidden

4

3 回答 3

463

不同之处在于Visibility.Hidden隐藏了控件,但保留了它在布局中占据的空间。所以它呈现空白而不是控件。 Visibilty.Collapsed不呈现控件并且不保留空白。控件将占用的空间是“折叠的”,因此得名。

来自 MSDN 的确切文本:

Collapsed:不显示元素,也不在布局中为其预留空间。

隐藏:不显示元素,但在布局中为元素保留空间。

可见:显示元素。

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

于 2009-05-20T08:21:15.453 回答
65

可见性:隐藏与折叠

考虑以下代码,它只显示three Labels并具有第二个Label visibilityas 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>

输出折叠:

折叠

现在将第二个更改Label visibilityHiddden.

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

输出隐藏:

隐

就如此容易。

于 2016-02-11T19:44:50.133 回答
7

即使有点旧线程,对于那些仍在寻找差异的人:

除了在 Hidden 中采用的布局(空间)和在 Collapsed 中未采用的布局(空间)之外,还有另一个区别。

如果我们在这个 'Collapsed' 主控件中有自定义控件,下次我们将它设置为 Visible 时,它​​将“加载”所有自定义控件。窗口启动时不会预加载。

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

于 2016-05-11T08:22:41.577 回答