У меня есть ListBox
, который содержит один TextBox
с большим количеством текста, который должен быть обернут, когда это возможно. ListBox
находится внутри ScrollViewer
вместе с другими элементами управления (в приведенном ниже примере это Button
). Я бы хотел, чтобы ListBox
растягивался горизонтально с ScrollViewer
и отображал горизонтальную полосу прокрутки только тогда, когда ListBox
меньше определенной ширины. Вот тот XAML, который у меня есть:
<StackPanel>
<ScrollViewer
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"
>
<StackPanel>
<Button Content="Test" />
<ListBox MinWidth="500">
<ListBoxItem>
<TextBox
Text="This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test."
TextWrapping="Wrap"
/>
</ListBoxItem>
</ListBox>
</StackPanel>
</ScrollViewer>
</StackPanel>
Проблема в том, что ListBox
(и, следовательно, TextBox
) достигают максимальной ширины независимо от ширины ScrollViewer
. Горизонтальная полоса всегда отображается (если, конечно, ширина ScrollViewer
не превышает ширину ListBox
). Я хочу, чтобы горизонтальная полоса отображалась только тогда, когда ListBox
меньше определенного размера.