Diferencia entre Visibilidad.Contraída y Visibilidad.Oculta

Resuelto Sauron asked hace 15 años • 4 respuestas

¿Cuáles son las diferencias entre Visibility.Collapsedy Visibility.Hiddenen WPF?

Sauron avatar May 20 '09 15:05 Sauron
Aceptado

La diferencia es que Visibility.Hiddenoculta el control, pero reserva el espacio que ocupa en el diseño. Entonces representa espacios en blanco en lugar del control. Visibilty.Collapsedno representa el control y no reserva el espacio en blanco. El espacio que ocuparía el control está "contraído", de ahí el nombre.

El texto exacto del MSDN:

Contraído : 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 el diseño.

Visible : muestra el elemento.

Consulte: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx

Razzie avatar May 20 '2009 08:05 Razzie

Visibilidad: oculta frente a colapsada

Considere el siguiente código que solo muestra three Labelsy tiene el segundo Label visibilitycomo 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:

Colapsado

Ahora cambia el segundo Label visibilitya Hiddden.

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

Salida oculta:

Oculto

Tan sencillo como eso.

Kylo Ren avatar Feb 11 '2016 19:02 Kylo Ren

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

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

Si tenemos controles personalizados dentro de este control principal 'contraído', la próxima vez que lo configuremos como Visible, "cargará" todos los controles personalizados. No se precargará cuando se inicie la ventana.

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

scsfdev avatar May 11 '2016 08:05 scsfdev