2010-08-25 4 views
0

У меня есть TreeView с заданной шириной. Когда я добавляю узел с именем, который превосходит максимальную ширину TreeView, он отображает вертикальную полосу прокрутки.WPF: Сократить строку до определенной длины

Я бы предпочел отображать только начало имени, за которым следует «...», чтобы избежать полосы прокрутки. Я попытался это сделать, но я не смог найти результат.

Может ли кто-нибудь сказать мне, как это делается (Не использование Google, я имею в виду сокращение строки)?

ответ

1

Обычно это нравится:

<TextBlock Text="Whatever" TextTrimming="CharacterEllipsis"/> 

Однако, вам нужно будет включить это в ваших TreeViewItem с путем шаблона.

+0

Вот что я искал. Для этого я должен установить свойство MaxWith для TextBlock, правильно? Как получить текущую ширину TreeView? –

+0

Установка ширины в TreeView не будет препятствовать прокрутке - она ​​просто изменит порог, по которому она начнет прокручиваться. Чтобы отключить прокрутку, установите 'ScrollBar.HorizontalScrollBarVisibility =" Disabled "' на 'TreeView'. –

+0

@ Анонимный почему? Просто используйте WordEllipsis как Kent suggestessted, который должен работать. –

0

Сначала вы можете установить MaxWidth на дереве, чтобы избежать этого элемента с вертикальной прокруткой. Во-вторых, если вы фактически добавляете элемент дерева в свое дерево, вы можете установить текст, чем зарегистрироваться на загруженное событие элемента управления, проверить его фактический размер и внести изменения в текст.

но самая изящная вещь, которую вы можете сделать, на мой взгляд, работа с привязкой данных и ГИЭ иерархический шаблон данных и конвертер, который будет обрезать текст для вас (вы можете послать деталь дерева к преобразователю)

надеюсь, это поможет вам

Смежные вопросы