今回は、私の質問はとても簡単です... WPFでテキストを折り返す方法を教えてくださいTreeViewItem
?WPF TreeViewItemでテキストを折り返す方法は?
TextBlock
が1つの単純なHierarchicalDataTemplate
です。
<TextBlock Text="{Binding Value}" TextWrapping="Wrap" />
テキストが折り返されません。
私はTreeView
のActualWidth
にTextBlock
のWidth
を結合しようとしたが、それは、テキストの折り返しを作るもののTreeView
がPadding
を持っているので、TreeViewItem
のWidth
はTreeView
に収まりません。 TreeViewItem
のActualWidth
への結合は、(驚くことではないが)同じ効果を有する。もう一つの欠点は、テキストが小さい項目でも、TreeView
境界の外側に伸びていることです。
<TextBlock Text="{Binding Value}" TextWrapping="Wrap" Width="{Binding ActualWidth,
ElementName=TreeView}" />
確かに私はそれを自動的に認識していないと信じてすることはできません...何とかTreeView
の境界のTreeViewItem
を知らせるように、より良い方法がなければなりません。しかし、私はこれをどのようにすることができますか? HBの答えに
UPDATE >>>
おかげで、私は彼がControlTemplate
で言及Bd
Border
上2へGrid.ColumnSpan
を変更するために管理し、テキストは今うまくラップするように、幅を設定しました。問題は、他のTreeViewItem
のを他のTreeView
に使用していることです。ここでは全幅のアイテムは必要ありません。
私が思いついた解決策は簡単です。私はそうのようなControlTemplate
にGrid.ColumnSpan
プロパティにTreeViewItem.Tag
値を結合した:
<Border Grid.ColumnSpan="{Binding Tag, RelativeSource={RelativeSource TemplatedParent}}"
Name="Bd" Grid.Column="1" ... />
は、これは私が2のいずれかにTreeViewItem.Tag
値を設定することにより、Grid.ColumnSpan
ので、TreeViewItem
の全幅または通常の幅の動作を変更することができますまたはそれぞれ1である。
あなたは、いくつかのXAMLを投稿できますか? –