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

Posted

技术标签:

【中文标题】C# 窗口可见性,折叠和隐藏【英文标题】:C# Window Visibility, collapsed and hidden 【发布时间】:2013-11-08 06:29:13 【问题描述】:

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

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

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

【问题讨论】:

只在wpf中使用,winforms不支持这种visibility,因为布局支持不好。 该链接适用于 WPF Windows。我将标签更改为 WPF 而不是 Winforms 假设您翻阅了许多记录。您希望按钮基于某些属性可见或不可见。如果将其设置为折叠,则其他内容将移动,但如果将其设置为隐藏,则其他内容不会移动。在那种情况下,我通常会使用隐藏,这样 Window 内容就不会四处移动。 哇,谢谢大家的回复,谢谢大家! 【参考方案1】:

这是一个插图:

 <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>

将呈现这个:

还有这个 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>

将呈现这个:

所以,Collapsed 不会节省空间,而 Hidden 会。

【讨论】:

【参考方案2】:

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

假设您在屏幕顶部有一个红色块(高度为 20 像素),而在红色块下方您有一个标题。

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

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

【讨论】:

【参考方案3】:

可见性不仅指窗口,还指所有控件。如果您使用自动放置其子控件的布局,则使用“隐藏”或“折叠”会有所不同。 'hidden' 表示布局控件在排列其子项时仍为其“保留空间”,而 'collapsed' 表示布局未为其保留任何空间。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于C# 窗口可见性,折叠和隐藏的主要内容,如果未能解决你的问题,请参考以下文章

CSS col 可见性:折叠在 Chrome 上不起作用

WPF 可见性折叠保留空间

如何隐藏单个 PivotItem 的可见性

QTabView 隐藏选项卡内容但不隐藏选项卡栏

具有折叠行的 HTML 表:如果“可见性:折叠”和“溢出:自动”出现错误

在 RowDetailsTemplate 中隐藏/折叠图像