Visibility.Collapsed
WPF和WPF之间有什么区别Visibility.Hidden
?
3 回答
不同之处在于Visibility.Hidden
隐藏了控件,但保留了它在布局中占据的空间。所以它呈现空白而不是控件。
Visibilty.Collapsed
不呈现控件并且不保留空白。控件将占用的空间是“折叠的”,因此得名。
来自 MSDN 的确切文本:
Collapsed:不显示元素,也不在布局中为其预留空间。
隐藏:不显示元素,但在布局中为元素保留空间。
可见:显示元素。
请参阅:http: //msdn.microsoft.com/en-us/library/system.windows.visibility.aspx
可见性:隐藏与折叠
考虑以下代码,它只显示three Labels
并具有第二个Label
visibility
as 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"/>
输出隐藏:
就如此容易。
即使有点旧线程,对于那些仍在寻找差异的人:
除了在 Hidden 中采用的布局(空间)和在 Collapsed 中未采用的布局(空间)之外,还有另一个区别。
如果我们在这个 'Collapsed' 主控件中有自定义控件,下次我们将它设置为 Visible 时,它将“加载”所有自定义控件。窗口启动时不会预加载。
至于“隐藏”,它将在“窗口”启动时加载我们设置为隐藏的所有自定义控件+主控件。