Tengo un TextBox
control dentro de un StackPanel
cuyo Orientation
está configurado en Horizontal
, pero no puedo hacer que TextBox llene el espacio restante de StackPanel.
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="180" Width="324">
<StackPanel Background="Orange" Orientation="Horizontal" >
<TextBlock Text="a label" Margin="5" VerticalAlignment="Center"/>
<TextBox Height="25" HorizontalAlignment="Stretch" Width="Auto"/>
</StackPanel>
</Window>
Y así es como se ve:
¿Por qué ese TextBox no llena el StackPanel?
Sé que puedo tener más control usando un Grid
control, solo estoy confundido acerca del diseño.
HorizontalAlignment
. :)FlowDirection="RightToLeft"
en elDockPanel
, así que tu último hijo será el que quede, usando el espacio restante.Recomendaría usar una cuadrícula en su lugar:
La otra forma de solucionar este problema es apilar la etiqueta en la parte superior en lugar de a la derecha. Noté que UWP tiene una propiedad de encabezado incorporada que puede usar para eso, no estoy seguro de si la propiedad de encabezado existe para WPF.
fuente
Pregunta anterior por tema real:
es lo requerido. Solo asegúrese de quitar el
width
.fuente
Puedo llenar un StackPanel con un cuadro de texto usando lo siguiente:
Cuadro de texto llenando horizontalmente el panel de pila
fuente