WPF中的Visibility.Collapsed和Visibility.Hidden有什么区别?
Visibility.Collapsed
Visibility.Hidden
Visibilty.Collapsed
MSDN的确切文本:
倒塌:不显示该元素,并且在布局中不为它保留空间。 隐藏的:不显示元素,但在布局中为元素保留空间。 可见:显示元素。
倒塌:不显示该元素,并且在布局中不为它保留空间。
隐藏的:不显示元素,但在布局中为元素保留空间。
可见:显示元素。
看:http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx
可见性:隐藏Vs折叠
考虑下面的代码,它只显示< em > three Labels < / em >,并且有第二个Label visibility作为Collapsed:
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。
Hiddden
<Label Width="50" Content="Second" Visibility="Hidden"/>
输出隐藏:
就是这么简单
虽然有点老,但对于那些仍然在寻找差异的人来说:
除了在隐藏中采用的布局(空间)和在折叠中不采用的布局之外,还有另一个区别。
如果我们在这个“折叠”主控件中有自定义控件,下次我们将其设置为可见时,它将“加载”所有自定义控件。当窗口启动时,它不会预加载。
至于“隐藏”,它将加载所有自定义控件+主控件,当“窗口”启动时,我们设置为隐藏。