對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
)的數據,不要在樹視圖的寬度內配合。所以當創建這些項目時,treeview控件會自行水平擴展以允許所有樹節點的文本可見。
這是不希望的行爲。我希望它的行爲像WinForms TreeView那樣,文本只是在控件的邊緣被截斷。這在WPF中可能嗎?如何?
UPDATE
繼@芬克的評論和鏈接的問題,建議我的TreeView XAML現在看起來像:
<TreeView x:Name="DataTree" Grid.Column="0" MinWidth="175" BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
我觀察到的行爲沒有任何變化。當節點文本太長以至於不能適應TreeView的水平範圍時,TreeView會水平展開以顯示所有文本。
這裏有幾個截圖來說明問題。展開領域節點時,子節點的內容會使TreeView水平展開。
你可以通過在「TreeView」上設置ScrollViewer.HorizontalScrollBarVisibility =「Disabled」禁用擴展。 Ref [this](https://stackoverflow.com/questions/45776693/making-a-portion-of-a-treeviewitem-wrap)文章,進一步向前邁進。 – Funk
@Funk:按照你的建議沒有產生可觀察的變化。 –
@SamAxe,TreeView位於哪個容器?如果Grid和columnDefinition具有'Width =「Auto」',則擴展是預期的行爲。嘗試設置最大寬度或比例寬度 – ASh