Diferencia entre Visibilidad.Colapsado y Visibilidad.Oculto


¿Cuáles son las diferencias entre Visibility.Collapsed y Visibility.Hidden en WPF?

Author: SliverNinja - MSFT, 2009-05-20

3 answers

La diferencia es que Visibility.Hidden oculta el control, pero reserva el espacio que ocupa en el layout. Así que renderiza espacios en blanco en lugar del control. Visibilty.Collapsed no renderiza el control y no reserva el espacio en blanco. El espacio que el control tomaría es 'colapsado', de ahí el nombre.

El texto exacto del MSDN:

Collapsed: No muestra el elemento y no reserva espacio para él en el diseño.

Oculto: no muestra el elemento, pero reserva espacio para el elemento en layout.

Visible: Muestra el elemento.

Véase: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx

 379
Author: Razzie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-29 14:41:32

Visibilidad: Oculto Vs Colapsado

Considere el siguiente código que solo muestra three Labels y tiene segundo Label visibility como 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>

Salida colapsada:

Derrumbar

Ahora cambie el segundo Label visibility a Hiddden.

<Label Width="50" Content="Second" Visibility="Hidden"/>

Salida oculta:

Oculto

Así de simple.

 43
Author: Kylo Ren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-07 07:15:06

Aunque un hilo un poco viejo, para aquellos que todavía buscan las diferencias:

Aparte del diseño (espacio) tomado en Oculto y no tomado en Colapsado, hay otra diferencia.

Si tenemos controles personalizados dentro de este control principal 'Colapsado', la próxima vez que lo configuremos en Visible, "cargará" todos los controles personalizados. No se pre-carga cuando se inicia la ventana.

En cuanto a 'Hidden', cargará todos los controles personalizados + control principal que configuramos como ocultos cuando el "ventana" se inicia.

 6
Author: scsfdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-12 00:00:06