在wpf中经常会遇到TextBlock里的文本过长,需要换行,如果只有TextBlock的话,只需要将TextBlock的TextWrapping设置为Wrap
<TextBlock TextWrapping="Wrap" Text="换行测试换行测试换行测试换行测试换行测试换行测试换行测试"/>
效果
但是如果TextBlock是在ListBox里的话,即使加上TextWrapping="Wrap"也不会自动换行,而是出现一个水平滚动条,如图:
这时如果让TextBlock的内容自动换行的话,则需要设置ListBox的ScrollViewer.HorizontalScrollBarVisibility 为Disabled将水平滚动条给禁用
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBoxItem>
<TextBlock TextWrapping="Wrap" Text="换行测试换行测试换行测试换行测试换行测试换行测试换行测试"/>
</ListBoxItem>
</ListBox>
最终效果