Force TextBlock для переноса в WPF ListBox

У меня есть список WPF, который отображает сообщения. Он содержит аватар с левой стороны и имя пользователя и сообщение, расположенные вертикально справа от аватара. Макет отлично до тех пор, пока текст сообщения не будет обертываться словами, но вместо этого я получаю горизонтальную полосу прокрутки в списке.

Я искал Google и нашел решения для подобных проблем, но никто из них не работал.

                

Содержимое TextBlock можно обернуть, используя свойство TextWrapping . Вместо StackPanel используйте DockPanel / Grid . Еще одна вещь – установить свойство ScrollViewer.HorizontalScrollBarVisibility значение Disabled для ListBox .

Обновлено Hidden для Disabled на основе комментария от Мэтта. Спасибо Мэтт.

Проблема может быть не в списке ListBox. TextBlock не будет обертываться, если один из родительских элементов управления обеспечивает достаточное пространство, так что ему не нужно обертывать. Это может быть вызвано элементом управления ScrollViewer.

Если вы хотите, чтобы TextBlock не увеличивался, и вы хотите, чтобы он просто соответствовал размеру списка, вы должны явно установить его ширину.

Чтобы динамически изменить его, это означает не значение fix, но вам нужно привязать его к его собственному родительскому элементу в визуальном дереве. У вас может быть что-то вроде этого:

           

Если это не сработает, попробуйте найти нужные элементы (которые должны быть привязаны к чему) с помощью Live Visual Tree в Visual Studio.

  • Как сделать управление наложением выше всех других элементов управления?
  • Как создать вкладки трапеции в элементе управления вкладками WPF
  • Обновление ObservableCollection в отдельном streamе
  • ResourceDictionary в отдельной сборке
  • Создание шкалы Viewbox по вертикали, но растяжение по горизонтали
  • Как связать TextBlock с ресурсом, содержащим форматированный текст?
  • Пользовательский контроль WPF Parent
  • Виртуализация WPF DataGrid с группировкой
  • Общий class наблюдаемого словаря для DataBinding / WPF C #
  • Что такого особенного в Generic.xaml?
  • Как программно нажать кнопку в WPF?
  • Давайте будем гением компьютера.