Вот что мне нужно: ListBox
, элементы которого состоят из StackPanel
с двумя TextBlock
. Текстовые блоки должны поддерживать перенос, список не должен расширяться, и не должно быть горизонтальной полосы прокрутки. Вот код, который у меня есть до сих пор. Скопируйте и вставьте его в 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
, с вертикальной полосой прокрутки или без нее?