WPF很新。
<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中吗?怎么样?
更新
关注@Funk的评论和链接问题中的建议我的TreeView XAML现在看起来像:
<TreeView x:Name="DataTree" Grid.Column="0" MinWidth="175" BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
我发现行为没有变化。当节点文本太长而无法容纳在TreeView的水平范围内时,TreeView会水平扩展以显示所有文本。
这里有一些截图来说明问题。扩展区域节点时,子节点的内容会导致TreeView水平扩展。
答案 0 :(得分:1)
如果TreeView
位于Grid
而ColumnDefinition
位于Width="Auto"
,则展开是预期的行为。
尝试设置MaxWidth(在ColumnDefinition或TreeView上)或比例宽度*
/固定宽度(在ColumnDefinition上)
网格行(RowDefinition)在其高度设置为“自动
”时具有类似的行为