Edit : The solution given below from Francesco B. is working. I was wondering if there is an XAML solution also.
I would like to make the Text in TextBlock inside a TreeViewItem to Wrap. I tried the solution from this link. It will make the Header text wrap, but not the expanded TextBlock.
Here is my TreeView with the parent Grid:
<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>
Here is the part of the changed Template from 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>
I added Grid.ColumnSpan="2"
to the border as the other solution, but this makes only header to be Wraped.
I feel like i have to do something with ItemsPresender. But nothing works!
Please suggest a solution!
Thanks.