首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Visibility.Collapsed与Visibility.Hidden的区别

Visibility.Collapsed与Visibility.Hidden的区别
EN

Stack Overflow用户
提问于 2009-05-20 08:10:04
回答 3查看 143K关注 0票数 311

WPF中的Visibility.CollapsedVisibility.Hidden有什么不同?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

票数 463
EN

Stack Overflow用户

发布于 2016-02-12 03:44:50

可见性:隐藏与折叠

考虑下面的代码,它只显示three Labels,并将第二个Label visibility作为Collapsed

代码语言:javascript
运行
复制
 <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

代码语言:javascript
运行
复制
<Label Width="50" Content="Second" Visibility="Hidden"/>

隐藏的输出:

就这么简单。

票数 63
EN

Stack Overflow用户

发布于 2016-05-11 16:22:42

尽管有点老掉牙,但对于那些仍在寻找差异的人来说:

除了在隐藏中使用的布局(空间)和不在折叠中使用的布局(空间)之外,还有另一个区别。

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

至于' hidden ',它将加载所有自定义控件+主控件,当“窗口”启动时,我们将这些控件设置为隐藏。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/886742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档