可见度差异。可见度差异隐藏

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

不同的是, Visibility.Hidden隐藏了控件,但保留了它在布局中所占的空间。 所以它会呈现空白而不是控件。 Visibilty.Collapsed不呈现控件不保留空白。 控制所需的空间是“折叠”的,因此这个名字。

从MSDN确切的文字:

折叠 :不要显示元素,也不要在布局中预留空间。

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

可见 :显示元素。

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

可见性:隐藏的Vs折叠

考虑下面的代码,其中只显示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> 

输出折叠:

倒塌

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

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

输出隐藏:

隐

就如此容易。

尽pipe有点旧线索,对于那些还在寻找差异的人来说:

除了在隐藏采取的布局(空间),而不是采取崩溃,还有一个区别。

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

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