调整窗口大小时,如何使嵌套在 TreeView 内的 TextBlock 换行?当 TextBlock 宽度固定(即 100)时很容易做到,但当宽度可调整大小时我找不到解决方案。
下面的代码是我最接近的。TextBlocks 位于从父 TreeView 获取宽度的 WrapPanel 内。当 treeviewitems 展开时,当缩进实际上将 WrapPanel 向右“推”并隐藏最右边的文本时,它不起作用。
<TreeView
ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate
ItemsSource="{Binding KeynoteModelHierarchy, Mode=TwoWay, UpdateSourceTrigger=Explicit}">
<WrapPanel
Orientation="Horizontal"
Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=TreeView}, Path=ActualWidth}">
<TextBlock Text="{Binding KeynoteCategoryNumber}"/>
<TextBlock Text="{Binding IsExpanded}" />
<TextBlock Text="{Binding KeynoteText}"
TextWrapping="WrapWithOverflow"
HorizontalAlignment="Stretch" />
</WrapPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>