C#窗口可见性,折叠和隐藏

时间:2013-10-29 07:50:22

标签: c# wpf visibility hidden

我有一个关于应用程序中窗口可见性的快速问题。根据... http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx(简称)

折叠窗口时,不会为布局中的窗口保留空间。隐藏窗口时,会为布局中的窗口保留空间。

我在这里很困惑,布局是指什么?它是指窗口空间吗?

4 个答案:

答案 0 :(得分:7)

这是一个例子:

 <Grid>
        <TabControl>
            <TabItem Header="Visible"></TabItem>
            <TabItem Visibility="Hidden" Header="Hidden">Hidden</TabItem>
            <TabItem Visibility="Hidden" Header="Hidden">Hidden</TabItem>
            <TabItem Visibility="Hidden" Header="Hidden">Hidden</TabItem>
            <TabItem Header="Visible"></TabItem>
            <TabItem Header="Visible"></TabItem>
            <TabItem Header="Visible"></TabItem>
        </TabControl>
    </Grid>

将呈现这一点:
enter image description here

这个XAML:

<Grid>
    <TabControl>
        <TabItem Header="Visible"></TabItem>
        <TabItem Visibility="Collapsed" Header="Collapsed">Collapsed</TabItem>
        <TabItem Visibility="Collapsed" Header="Collapsed">Collapsed</TabItem>
        <TabItem Visibility="Collapsed" Header="Collapsed">Collapsed</TabItem>
        <TabItem Header="Visible"></TabItem>
        <TabItem Header="Visible"></TabItem>
        <TabItem Header="Visible"></TabItem>
    </TabControl>
</Grid>

将呈现这一点:

enter image description here

因此,Collapsed不会保存空间,而Hidden会保存。

答案 1 :(得分:1)

不,它指的是你正在看的整个窗口。

让我们说,你在屏幕的顶部有一个红色块(高20px),在红色块下面你有一个标题。

隐藏:红色区块不可见,但它通常保留的空间仍然保留,这意味着标题距离屏幕顶部20px

折叠:红色块与预留空间(20px高度)不可见,这意味着标题位于屏幕顶部

答案 2 :(得分:0)

可见性不仅涉及窗口,还涉及所有控件。如果您使用自动放置其子控件的布局,如果您使用“隐藏”或“折叠”,则会产生影响。 “隐藏”意味着布局控件在安排其子项时仍然为其“预留空间”,而“折叠”意味着布局不为其保留任何空间。

答案 3 :(得分:0)

布局基本上是控件在表单中的整体放置,所以如果它的折叠意味着它在UI中会是绝对的,并且其位置将被其他控件使用,但是当它隐藏时它对用户来说是不可见的,但是地方不能被任何其他控件占用,只是对用户不可见。