¿Cuáles son las diferencias entre Visibility.Collapsedy Visibility.Hiddenen WPF?
¿Cuáles son las diferencias entre Visibility.Collapsedy Visibility.Hiddenen WPF?
Respuestas:
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 tomaría el control está 'colapsado', de ahí el nombre.
El texto exacto del MSDN:
Contraído : no muestre el elemento y no le reserve espacio en el diseño.
Oculto : no muestra el elemento, pero reserva espacio para el elemento en el diseño.
Visible : muestra el elemento.
Ver: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx
Visibilidad: Oculto vs. Contraído
Considere seguir el 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 contraída:
Ahora cambia el segundo Label visibilitya Hiddden.
<Label Width="50" Content="Second" Visibility="Hidden"/>
Salida oculta:
Tan sencillo como eso.
Aunque es un hilo un poco viejo, para aquellos que aún 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 en Visible, "cargará" todos los controles personalizados. No se cargará previamente cuando se inicie la ventana.
En cuanto a 'Oculto', cargará todos los controles personalizados + control principal que configuramos como ocultos cuando se inicia la "ventana".