¿Cómo hacer que el StackPanel o el DockPanel se estiren para adaptarse a sus contenedores en WPF?
Tengo unGrid
como contenedor raíz con dos columnas definidas (solo hay una fila).
La primera columna tiene un ancho flexible y la segunda columna tiene un ancho fijo de 300 px.
Next, he colocado unListBox
dentro de la segunda columna para estirar tanto horizontal como verticalmente, es decir, para llenar toda la segunda columna.
or último, he definido una plantilla de elementos para laListBox
para ser un @ orientado verticalmenStackPanel
, con unoDockPanel
y un par deTextBlock
s dentro.
<!-- Data template for ListBox -->
<DataTemplate DataType="{x:Type entities:Track}">
<StackPanel Orientation="Vertical">
<DockPanel>
<TextBlock DockPanel.Dock="Left" Text="Now playing" />
<TextBlock DockPanel.Dock="Right" Text="Time remaining" />
</DockPanel>
<TextBlock Text="{Binding Artist}" />
<TextBlock Text="{Binding Ti,tle}" />
</StackPanel>
</DataTemplate>
...
<ListBox
Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
Tengo dos preguntas
¿Cómo hago elStackPanel
rellena todo el ancho de laListBox
? En este momento, solo se necesita suficiente espacio para acomodar laDockPanel
y elTextBlock
s dentro. No se ajustará al ancho de laListBox
oListBoxItem
.Next, ¿cómo hago elDockPanel
rellena todo el ancho de laStackPanel
, es decir, su padre? Lo que sucede ahora es que incluso si el ancho de laTextBlock
s en elStackPanel
excede el ancho de laDockPanel
, no se estirará para que coincida con su ancho.Gracias por la ayuda