WPF中的Visibility.Collapsed
和Visibility.Hidden
有什么不同?
发布于 2009-05-20 08:21:15
不同之处在于,Visibility.Hidden
隐藏了控件,但保留了它在布局中占据的空间。所以它呈现的是空白而不是控件。Visibilty.Collapsed
不呈现控件,也不保留空白。控件占用的空间是“折叠的”,因此得名。
来自MSDN的确切文本:
space :不显示元素,并且不在布局中为其预留空间。
Hidden:不显示元素,但在布局中为元素保留空间。
Visible:显示元素。
请参阅:http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx
发布于 2016-02-12 03:44:50
可见性:隐藏与折叠
考虑下面的代码,它只显示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"/>
隐藏的输出:
就这么简单。
发布于 2016-05-11 16:22:42
尽管有点老掉牙,但对于那些仍在寻找差异的人来说:
除了在隐藏中使用的布局(空间)和不在折叠中使用的布局(空间)之外,还有另一个区别。
如果我们在这个“折叠”的主控件中有自定义控件,那么下次我们将它设置为Visible时,它将“加载”所有的自定义控件。它不会在window启动时预加载。
至于' hidden ',它将加载所有自定义控件+主控件,当“窗口”启动时,我们将这些控件设置为隐藏。
https://stackoverflow.com/questions/886742
复制相似问题