content wpf stackpanel autosize

content - WPF-setting HorizontalAlignment=Estirar a Textbox en StackPanel



stackpanel content alignment (3)

La respuesta de Kent parece correcta.
Para forzar aún más el comportamiento de StackPanel, creo que necesitaría calcular de forma dinámica la propiedad de Ancho de los elementos contenidos O alguna anulación funky de MeasureOverride . Prefiero usar otro administrador / panel de diseño. Algunas cosas que noté ...

  • El valor predeterminado para las propiedades HorizontalAlignment y VerticalAlignment de elementos secundarios es Stretch (si no especifica uno explícitamente).
  • El StackPanel estirará los elementos en función de su valor de propiedad Orientación. Asi que

    • Orientación = Horizontal significa que todos los elementos se estirarán verticalmente a máx. Los elementos fluyen horizontalmente.
    • Orientación = Vertical significa que todos los elementos se extenderán al máximo. Los elementos fluyen verticalmente.
  • A menos que se especifique explícitamente, el ancho y la altura de los elementos secundarios son NaN. Si especifica un valor explícito, StackPanel los respetará en las configuraciones Horiz y Vert Alignment.
  • El propio StackPanel tiene HorizontalAlignment y VerticalAlignment que agrega un giro de diseño adicional. Puedes experimentar con este ejemplo .

StackPanel

El valor predeterminado es stretch para HorizontalAlignment y VerticalAlignment del contenido que está contenido en un StackPanel.

Alineación horizontal

Cuando las propiedades de Altura y Ancho se establecen explícitamente en un elemento, estas medidas toman un precedente más alto durante el diseño y cancelarán los efectos típicos de configuración de Alineación Horizontal a Estirar.

¿Por qué un cuadro de texto no se estira para llenar el espacio en un panel de distribución? ¿Esto es por diseño? En una grilla, el cuadro de texto se estira como se esperaba.


Necesitaba que los elementos se dimensionaran de manera uniforme, pero apilados verticalmente.

Usé UniformGrid y establecí la propiedad Columns en 1. (probado con un TextBox, y se estira como lo desea)


Sí, es por diseño. El StackPanel asignará el espacio que solicita el TextBox . Si no ha establecido un ancho en el TextBox , solo requerirá suficiente ancho para ajustarse a su texto.