Como fazer a quebra automática de texto em um WPF TreeViewIte

Desta vez, minha pergunta é tão simples quanto parece ... como você obtém o texto para quebrar em um WPFTreeViewItem?

Eu tenho um simplesHierarchicalDataTemplate com apenas umTextBlock iniciar

<TextBlock Text="{Binding Value}" TextWrapping="Wrap" />

O texto não quebra.

Tentei ligar oWidth doTextBlock aoAc,tualWidth doTreeView, mas embora isso faça com que o texto seja quebrado, oWidth doTreeViewItem não cabe noTreeView porque oTreeView hasPadding. Vinculação aoActualWidth doTreeViewItem (sem surpresa) tem o mesmo efeito. Outra desvantagem disso é que mesmo os itens com pouco texto se estendem para fora doTreeView limites.

<TextBlock Text="{Binding Value}" TextWrapping="Wrap" Width="{Binding ActualWidth, 
ElementName=TreeView}" />

Certamente deve haver uma maneira melhor, como de alguma forma informar oTreeViewItem doTreeViews limites de @ ... Não acredito que ele não saiba automaticamente. Mas como posso fazer isso?

UPDATE >>>

Graças à resposta de H.B., consegui alterar oGrid.ColumnSpan a 2 noBd Border ele mencionou noControlTemplate e definiu a largura para que o texto agora seja bem organizado. O problema é que estou usando esseControlTemplate para outroTreeViewItems em outrosTreeView onde eu não quero itens de largura tota

A solução que surgiu foi simples. Liguei oTreeViewItem.Tag valor para oGrid.ColumnSpan propriedade noControlTemplate igual a

<Border Grid.ColumnSpan="{Binding Tag, RelativeSource={RelativeSource TemplatedParent}}" 
Name="Bd" Grid.Column="1" ... />

Isso me permite alterar oGrid.ColumnSpan e, portanto, o comportamento da largura total ou da largura comum doTreeViewItem definindo oTreeViewItem.Tag para 2 ou 1, respectivament

questionAnswers(2)

yourAnswerToTheQuestion