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
doTreeView
s 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 outroTreeViewItem
s 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