Вот что я хочу: A ListBox
, чьи предметы состоят из StackPanel
с двумя TextBlock
s. Текстовые блоки должны поддерживать перенос, список не должен расширяться и не должно быть горизонтальной полосы прокрутки. Вот код, который у меня есть. Скопируйте и вставьте его в XamlPad, и вы увидите, о чем я говорю:
<ListBox Height="300" Width="300" x:Name="tvShows">
<ListBox.Items>
<ListBoxItem>
<StackPanel>
<TextBlock Width="{Binding ElementName=tvShows, Path=ActualWidth}" TextWrapping="Wrap">Lost is an American live-action television series. It follows the lives of plane crash survivors on a mysterious tropical island.</TextBlock>
<TextBlock Width="{Binding ElementName=tvShows, Path=ActualWidth}" TextWrapping="Wrap">Lost is an American live-action television series. It follows the lives of plane crash survivors on a mysterious tropical island.</TextBlock>
</StackPanel>
</ListBoxItem>
<ListBoxItem>
<StackPanel>
<TextBlock Width="{Binding ElementName=tvShows, Path=ActualWidth}" TextWrapping="Wrap">Lost is an American live-action television series. It follows the lives of plane crash survivors on a mysterious tropical island.</TextBlock>
<TextBlock Width="{Binding ElementName=tvShows, Path=ActualWidth}" TextWrapping="Wrap">Lost is an American live-action television series. It follows the lives of plane crash survivors on a mysterious tropical island.</TextBlock>
</StackPanel>
</ListBoxItem>
</ListBox.Items>
</ListBox>
Это, кажется, делает работу по предотвращению роста текстовых блоков, но есть одна проблема. Кажется, что текстовые блоки немного больше, чем список, в результате чего появляется горизонтальная полоса прокрутки. Это странно, потому что их ширина привязана к ActualWidth lisbox. Кроме того, если добавить в список еще несколько элементов (просто вырезать и вставить в XamlPad), в результате чего появится вертикальная полоса прокрутки, ширина текстовых блоков не изменится до вертикальной полосы прокрутки.
Как сохранить TextBlock
внутри ListBox
с вертикальной полосой прокрутки или без нее?