【发布时间】:2018-05-12 09:41:41
【问题描述】:
编辑:Francesco B. 下面给出的解决方案是有效的。我想知道是否还有 XAML 解决方案。
我想将 TreeViewItem 内的 TextBlock 中的文本进行换行。 我尝试了来自this 链接的解决方案。它会使 Header 文本换行,但不会使展开的 TextBlock。
这是我的带有父网格的 TreeView:
<Grid Background="LightGray">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<TreeView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<TreeViewItem Style="{DynamicResource TreeViewItemStyle1}">
<TreeViewItem.Header>
<TextBlock Text="Header Header Header Header Header Header Header Header "
TextWrapping="Wrap" />
</TreeViewItem.Header>
<TextBlock Text="1very 2very 3very 4very 5long 6very 7very 8very 9very 10Long"
TextWrapping="Wrap"
Background="LightCyan" />
</TreeViewItem>
</TreeView>
</Grid>
<GridSplitter Grid.Column="1"
Width="10"
ResizeBehavior="PreviousAndNext" />
<Grid Grid.Column="2"
Background="LightPink" />
</Grid>
这是从 TreeViewItemStyle1 更改的模板的一部分:
<Border x:Name="Bd"
BorderBrush="Red"
BorderThickness="1"
Background="{TemplateBinding Background}"
Grid.Column="1"
Grid.ColumnSpan="2"
Grid.Row="0"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true">
<ContentPresenter x:Name="PART_Header"
ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ItemsPresenter x:Name="ItemsHost"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
TextBlock.FontSize="35"
Grid.Column="1"
Grid.ColumnSpan="2"
Grid.Row="1">
</ItemsPresenter>
我在边框中添加了Grid.ColumnSpan="2" 作为另一种解决方案,但这只会包裹标题。
我觉得我必须对 ItemsPresender 做点什么。但没有任何效果!
请提出解决方案!
谢谢。
【问题讨论】: