非常に新しいWPF。TreeViewのDataTemplateがコントロールを水平に展開させないようにするにはどうすればよいですか?
<TreeView Grid.Column="0" x:Name="DataTree" MinWidth="175" BorderThickness="0">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type self:DispatchTreeTerritoryItem}" ItemsSource="{Binding ClientLocations}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type self:DispatchTreeClientLocationItem}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ClientName,StringFormat='({0}) '}" />
<TextBlock Text="{Binding Address}" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>
DispatchTreeClientlocationItem
性質(ClientName
とAddress
)のデータは、ツリービューの幅に合いません。したがって、アイテムが作成されると、ツリービューコントロールはツリーノードのテキストをすべて表示できるように、ツリービューコントロールを水平方向に展開します。
これは望ましい動作ではありません。 WinForms TreeViewのように動作するようにしたいと思います。テキストはコントロールの端で切り捨てられます。それはWPFで可能ですか?そしてどうやって?私は行動に変化が見られなかっまし
<TreeView x:Name="DataTree" Grid.Column="0" MinWidth="175" BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
:ファンクさんのコメントと私のTreeViewコントロールのXAMLは、今のように見えるリンク問題の提案@続き
UPDATE
。ノードテキストが長すぎてTreeViewの水平範囲に収まらない場合、TreeViewはすべてのテキストを表示するように水平方向に展開されます。
問題を説明するためのカップルのスクリーンショットです。テリトリーノードを展開すると、子ノードの内容によってTreeViewが水平方向に展開されます。
に設定されている場合
*
/固定幅(ColumnDefinition上)グリッド行(RowDefinition)が同様の行動を持ってMaxWidthの(ColumnDefinition上またはツリービュー上)を設定、または比例幅試してみてください'TreeView'で' ScrollViewer.HorizontalScrollBarVisibility = "Disabled"を設定して展開を無効にしてください。 Ref [this](https://stackoverflow.com/questions/45776693/making-a-portion-of-a-treeviewitem-wrap)投稿、それをさらに進めてください。 – Funk
@Funk:あなたの提案に従えば、観察可能な変化は生じませんでした。 –
@SamAxe、コンテナTreeViewはどこにありますか?グリッドとcolumnDefinitionに 'Width =" Auto "'がある場合、展開は予想される動作です。最大幅または比例幅を設定してみてください – ASh