能见度差异。塌陷和能见度。隐藏的

WPF中的Visibility.CollapsedVisibility.Hidden有什么区别?

150604 次浏览
不同之处在于Visibility.Hidden隐藏了控件,但保留了它在布局中占用的空间。因此它呈现空白而不是控件。 Visibilty.Collapsed不呈现控件而且不保留空格。控件占用的空格是'collapse ',因此命名为。

MSDN的确切文本:

倒塌:不显示该元素,并且在布局中不为它保留空间。

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

可见:显示元素。

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

可见性:隐藏Vs折叠

考虑下面的代码,它只显示< em > three Labels < / em >,并且有第二个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>

输出崩溃:

 collapse .

现在将第二个Label visibility更改为Hiddden

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

输出隐藏:

Hidden

就是这么简单

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

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

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

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