我有一些TextBlock
,可以显示很长的字符串。
但是,当TextBlock
内容 width
变得大于TextBlock
拥有width
时,我想删除部分内容并放置“ ......“最后改为。
我会将完整内容显示为TooTtip
。
<TextBlock Text="{Binding Path=MyValue}" TextAlignment="Right" FontWeight="Bold" ToolTip="{Binding MyValue}" />
据我所知,TextBlock没有事件,可以在内容更改后触发。是否有任何好方法可以在TextBlock上监听contentChanged
事件,计算文本宽度,与控件宽度进行比较以及切割不适合的部分内容?
我需要在codebehind中执行此操作,因为viewmodel无法更改某些无关紧要的原因。
答案 0 :(得分:2)
您可以使用TextTrimming:
<TextBlock Text="{Binding Path=MyValue}"
TextAlignment="Right" FontWeight="Bold"
ToolTip="{Binding MyValue}"
TextTrimming="WordEllipsis" />
或者你可以在codebehind中设置它:
myTextBlock.TextTrimming = TextTrimming.CharacterEllipsis;