可见度差异。可见度差异隐藏
WPF中的Visibility.Collapsed
和Visibility.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时,它将“加载”所有的自定义控件。 窗口启动时不会预加载。
至于“隐藏”,当“窗口”开始时,它会加载所有我们设置为隐藏的自定义控件+主控件。