example - wpf layout
¿Cuál es la diferencia entre HorizontalAlignment y HorizontalContentAlignment en WPF? (3)
Cuál es la diferencia entre:
HorizontalAlignment="Stretch"
-
HorizontalContentAlignment="Stretch"
en un cuadro de texto en WPF?
Ejemplo de ejemplo:
<TextBox HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Height="100"
TextWrapping="Wrap"
AcceptsReturn="True"
></TextBox>
HorizontalContentAlignment y VerticalContentAlignment se utilizan con los controles de contenido que los aplican a su contenido. Por ejemplo, en el siguiente código, el botón Control de contenido alineará su contenido (que es una cadena en este caso y puede ser cualquier objeto arbitrario) para centrar.
La alineación horizontal y la alineación vertical se utilizan con elementos secundarios cuando están dentro de un panel. El panel ordenará a sus hijos basándose en estas propiedades de los elementos hijos. En el siguiente código, el Panel (StackPanel) alineará su hijo (Botón) a la derecha.
<StackPanel>
<Button Content="OK"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
HorizontalAlignment="Right" VerticalAlignment="Top" />
</StackPanel>
HorizontalAlignment
alineará su cuadro de texto en relación con su padre que lo contiene, mientras que HorizontalContentAlignment
alineará el texto de su cuadro de texto en relación a sí mismo.
HorizontalAlignment
y VerticalAlignment
determinan la alineación del propio control con respecto a su control principal.
HorizontalContentAlignment
y VerticalContentAlignment
determinan la alineación del contenido de los controles con respecto al control.
Por ejemplo, considere un control de botón común
<Button x:Name="aButton" Width="50" Height="25" />
Aquí, de alguna manera, debe especificar cómo se alinea este control dentro de su control principal. Un control principal adecuado podría ser un StackPanel, una Grid, un WrapPanel, etc.
Tanto para Horizontal
como para VerticalAlignment
puede elegir entre las opciones Left
, Right
, Center
y Stretch
. Las tres primeras opciones respetan el ancho y la altura de los botones, mientras que la última opción intenta estirar el botón en la dirección especificada ignorando el ancho o la altura establecidos:
El código
<StackPanel Orientation="Horizontal">
<Button x:Name="aButton" Width="50" Height="25" HorizontalAlignment="Right" />
</StackPanel>
por ejemplo, colocaría el botón dentro de StackPanel y lo alinearía adentro a la izquierda.
HorizontalContentAlignment
y VerticalContentAlignment
alinean el contenido del control. El contenido es un UIControl especial que se integra en el control que puede explotar simplemente echando un vistazo a la Plantilla de Control de un Control de Contenido. Tenga en cuenta que estamos hablando especialmente de ContenControls, que actúa como un contenedor que es capaz de tomar exactamente un objeto para "transportar" dentro y mostrar su contenido.
Por lo tanto, HorizontalContentAlignment
y VerticalContentAlignment
están determinando la alineación de este contenido con respecto a su contenedor. En el caso de un botón creado inicialmente, el contenido de los botones es su título y con las dos propiedades en cuestión, está alineando este título dentro de los bordes de los botones, que es uno de estos: Izquierda, Derecha, Centro, Estirar.