在listBox中更改TextBlock文本

时间:2012-06-23 19:35:37

标签: wpf xaml text textblock listboxitem

我有ListBox,其中包含以下内容:

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

department是一个字符串属性:text =“dept1 \ dept2 \ dept3 \ dept4 \ dept5 \ dept6” 我的问题是,当ListBox大小发生变化时,我想以这种方式更改TextBlock文本:text = dept1 \ dept2 \ ... \ dept6。

(dept1 \ dept2 \ ... \ dept6)的长度等于或小于ListBoxItem实际大小。

1 个答案:

答案 0 :(得分:0)

您需要将TextBlock的TextTrimming属性设置为CharacterEllipsis,如下所示 -

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

但如果它大于listboxitem的大小,这将在文本末尾显示省略号。像这样的东西 - “dept1 \ dept2 \ dept3 \ dept4 \ dept5 ......”

但是如果你想要它在中心,你可能不得不使用ValueConverter格式化字符串。这可能会有所帮助 - Ellipsis at start of string in WPF ListView