Est-ce que quelqu'un sait comment cacher le bouton [-] pour une vue arborescente? L'arborescence ne sera jamais réduite et, par conséquent, je n'ai pas besoin du noeud racine pour avoir l'option de réduction. Je sais que je pourrais utiliser un listview avec un objet qui indente l'élément [0] à agir comme un nœud racine treeview. Cependant, la liaison que j'utilise, etc. demande un treeview, et je ne sais pas comment accéder au bouton et le désactiver.Treeview hide [+] [-] boutons
1
A
Répondre
5
Cela devrait fonctionner. Vous devez modifier le ControlTemplate du TreeViewItem, le bouton [+]/[-] est en fait un ToggleButton dans le ControlTemplate de TreeViewItem, donc tout ce que vous devez faire est de mettre sa visibilité à l'état caché ou réduit.
Créez un projet appelé "StackOverflowTests" (donc vous n'avez rien à changer) et collez ce code dans votre fichier Window1.xaml. Si le travail dès la sortie de la boîte:
<ControlTemplate x:Key="invisibleButtonTreeViewItemTemplate" TargetType="TreeViewItem" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="19" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<!-- Make the ToggleButton invisible -->
<ToggleButton IsChecked="False" Visibility="Hidden" ClickMode="Press" Name="Expander" />
<Border BorderThickness="{TemplateBinding Border.BorderThickness}" Padding="{TemplateBinding Control.Padding}" BorderBrush="{TemplateBinding Border.BorderBrush}" Background="{TemplateBinding Panel.Background}" Name="Bd" SnapsToDevicePixels="True" Grid.Column="1">
<ContentPresenter Content="{TemplateBinding HeaderedContentControl.Header}" ContentTemplate="{TemplateBinding HeaderedContentControl.HeaderTemplate}" ContentStringFormat="{TemplateBinding HeaderedItemsControl.HeaderStringFormat}" ContentSource="Header" Name="PART_Header" HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
</Border>
<ItemsPresenter Name="ItemsHost" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" />
</Grid>
<ControlTemplate.Triggers>
<!-- Remove this trigger so it does not collapse on double click or-->
<!--<Trigger Property="TreeViewItem.IsExpanded">
<Setter Property="UIElement.Visibility" TargetName="ItemsHost">
<Setter.Value>
<x:Static Member="Visibility.Collapsed" />
</Setter.Value>
</Setter>
<Trigger.Value>
<s:Boolean>False</s:Boolean>
</Trigger.Value>
</Trigger>-->
<Trigger Property="ItemsControl.HasItems">
<Setter Property="UIElement.Visibility" TargetName="Expander">
<Setter.Value>
<x:Static Member="Visibility.Hidden" />
</Setter.Value>
</Setter>
<Trigger.Value>
<s:Boolean>False</s:Boolean>
</Trigger.Value>
</Trigger>
<Trigger Property="TreeViewItem.IsSelected">
<Setter Property="Panel.Background" TargetName="Bd">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.HighlightBrushKey}" />
</Setter.Value>
</Setter>
<Setter Property="TextElement.Foreground">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.HighlightTextBrushKey}" />
</Setter.Value>
</Setter>
<Trigger.Value>
<s:Boolean>True</s:Boolean>
</Trigger.Value>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="TreeViewItem.IsSelected">
<Condition.Value>
<s:Boolean>True</s:Boolean>
</Condition.Value>
</Condition>
<Condition Property="Selector.IsSelectionActive">
<Condition.Value>
<s:Boolean>False</s:Boolean>
</Condition.Value>
</Condition>
</MultiTrigger.Conditions>
<Setter Property="Panel.Background" TargetName="Bd">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.ControlBrushKey}" />
</Setter.Value>
</Setter>
<Setter Property="TextElement.Foreground">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.ControlTextBrushKey}" />
</Setter.Value>
</Setter>
</MultiTrigger>
<Trigger Property="UIElement.IsEnabled">
<Setter Property="TextElement.Foreground">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.GrayTextBrushKey}" />
</Setter.Value>
</Setter>
<Trigger.Value>
<s:Boolean>False</s:Boolean>
</Trigger.Value>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="Template" Value="{StaticResource invisibleButtonTreeViewItemTemplate}" />
</Style>
</Window.Resources>
<TreeView>
<TreeViewItem Header="Item 1" IsExpanded="True">
<TreeViewItem Header="Item 1.1" IsExpanded="True" />
<TreeViewItem Header="Item 1.2" IsExpanded="True">
<TreeViewItem Header="Item 1.2.1" IsExpanded="True" />
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="Item 2" IsExpanded="True">
<TreeViewItem Header="Item 2.1" IsExpanded="True" />
</TreeViewItem>
</TreeView>
0
I mis en œuvre récemment. Sur le contrôle TreeView Je viens de mettre:
IsHitTestVisible="False"
et a ajouté dans mon app.xaml:
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True" />
</Style>
Bien que cela supprime la possibilité de sélectionner l'une des TreeViewItems. Je viens juste de le faire parce que je voulais la simple représentation hiérarchique de certaines données que j'avais.
Questions connexes
- 1. boutons style d'extension de TreeView
- 2. Qt hide réduit, agrandit et ferme les boutons
- 3. hide Toast
- 4. Interface utilisateur jQuery - Effet Hide Hide dans Firefox - Flickering
- 5. Ruby Hide Console
- 6. jsTree show/hide nodes
- 7. UIWebView interaction hide uitoolbar
- 8. hide submit button
- 9. hide() dans jquery
- 10. Jquery - Remove() après hide()
- 11. Hide Equals et ReferenceEquals
- 12. Facebook style hide | Supprimer
- 13. hide ID mod_rewrite
- 14. Prototype hide/show
- 15. Asp.net MVC Visible/hide
- 16. Multiple show hide div
- 17. show hide: DIVs jQuery
- 18. TreeView éditable
- 19. show hide image dans android
- 20. Modifier l'animation jquery show()/hide()?
- 21. Hide Crystal Report en-tête
- 22. Alternatives à jquery hide()/show()?
- 23. Animé div show/hide (jQuery)
- 24. Problèmes avec show hide jquery
- 25. Asp.net Treeview étrange comportement
- 26. Réutilisation des boutons expand [+] et de réduction [-] de TreeView dans WPF
- 27. Créer TreeView avec des boutons qui se comportent comme l'arbre des objets de Blend
- 28. TreeView et Postback
- 29. TreeView + signe
- 30. problème treeview
@urema - quel langage de codage souhaitez-vous utiliser pour la réponse - C#, VB, VC++, etc.? – ChrisBD
Voir ceci pour C# http://stackoverflow.com/questions/161378/treeview-sign – codingbadger
Java? Javascript? Haskell? – relet