Très nouveau sur WPF.Comment empêcher le DataTemplate de TreeView de provoquer l'expansion horizontale du contrôle?
<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>
Les données des propriétés DispatchTreeClientlocationItem
(ClientName
et Address
), ne correspondent pas à l'intérieur de la largeur de l'arborescence. Ainsi, lorsque les éléments sont créés, le contrôle treeview se développe horizontalement pour permettre à tout le texte du nœud de l'arbre d'être visible.
Ce comportement n'est pas souhaité. Je voudrais qu'il se comporte comme WinForms TreeView, où le texte est juste tronqué au bord du contrôle. Est-ce possible dans WPF? Et comment?
MISE À JOUR
Suite @ commentaire de Funk et la suggestion de la question liée mon TreeView XAML ressemble maintenant à:
<TreeView x:Name="DataTree" Grid.Column="0" MinWidth="175" BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
J'ai observé aucun changement dans le comportement. Lorsque le texte du noeud est trop long pour tenir dans les limites horizontales de TreeView, le TreeView se développe horizontalement pour afficher tout le texte.
Voici quelques captures d'écran pour illustrer le problème. Lors de l'expansion d'un nœud de territoire, le contenu du nœud enfant provoque l'expansion horizontale de TreeView.
Vous pouvez Désactivez l'expansion en définissant ScrollViewer.HorizontalScrollBarVisibility = "Disabled" sur le TreeView. Ref [this] (https://stackoverflow.com/questions/45776693/making-a-portion-of-a-treeviewitem-wrap), en le poussant un peu plus loin. – Funk
@ Funk: suite à votre suggestion n'a produit aucun changement observable. –
@SamAxe, dans quel conteneur TreeView est situé? si une grille et columnDefinition a 'Width =" Auto "', l'expansion est un comportement attendu. try set MaxWidth ou la largeur proportionnelle – ASh