У меня есть Grid как корневой контейнер с двумя определенными столбцами (там только одна строка).
Первый столбец имеет гибкую ширину, а второй столбец имеет фиксированную ширину 300 пикселей.
Затем я поместил ListBox во второй столбец, чтобы растянуть как горизонтально, так и вертикально, т.е. Заполнить весь второй столбец.
Наконец, я определил шаблон элементов для ListBox как вертикально ориентированный StackPanel, с одним DockPanel и парой TextBlock внутри.
<!-- 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 Title}" />
</StackPanel>
</DataTemplate>
...
<ListBox
Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
У меня есть два вопроса:
- Как мне сделать
StackPanelзаполнить всю ширинуListBox? Прямо сейчас для размещенияDockPanelиTextBlockвнутри достаточно места достаточно. Он не будет соответствовать ширинеListBoxилиListBoxItem. - Далее, как мне сделать
DockPanelзаполнить всю ширинуStackPanel, т.е. ее родителя? Что происходит прямо сейчас, так это то, что даже если ширинаTextBlockвStackPanelпревышает ширинуDockPanel, она не будет растягиваться, чтобы соответствовать их ширине.
Спасибо за помощь.