Search code examples
c#.netwpfvisibilityhidden

C# Window Visibility, collapsed and hidden


I have a quick question regarding visibility of windows in an application. According to... http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx (its short)

When a window is collapsed no space is reserved for the window in layout. When a window is hidden space is reserved for the window in layout.

I'm confused here, what is the layout referring to? Is it referring to window space?


Solution

  • Here's an illustration:

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

    Will render this:
    enter image description here

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

    Will render this:

    enter image description here

    So, Collapsed will not save the space, whereas Hidden will.