2012-06-23 3 views
0

У меня есть ListBox, который состоит из элементов, как это:Изменить TextBlock Text в ListBox

<ListBoxItem> 
    <ListBoxItem.ContentTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Path=department}"></TextBlock> 
     </DataTemplate> 
    </ListBoxItem.ContentTemplate> 
</ListBoxItem> 

отдел является строковое свойство: текст = "dept1 \ dept2 \ dept3 \ dept4 \ dept5 \ dept6" Моя проблема что когда изменяется размер ListBox, я хочу изменить текст TextBlock следующим образом: text = dept1 \ dept2 \ ... \ dept6.

длина (dept1 \ dept2 \ ... \ dept6) равна или меньше ListBoxItem фактический размер.

ответ

0

Вы должны установить TextTrimming свойство вашего TextBlock в CharacterEllipsis, как это -

<TextBlock Text="{Binding Path=department}" TextTrimming="CharacterEllipsis"/> 

Но это покажет многоточие в конце текста, если он получает больше, чем размер ListBoxItem. Что-то вроде этого - «dept1 \ dept2 \ dept3 \ dept4 \ dept5 ...»

Но, однако, если вы хотите его в центре, вам может понадобиться использовать ValueConverter для форматирования строки. Это может помочь - Ellipsis at start of string in WPF ListView

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