Wie kann ich das Zusammenklappen des Treeview nach dem Mausklick auf den TreeViewItem-Pfeil (in der Ansicht) stoppen? Ich möchte meinen Treeview die ganze Zeit erweitert anzeigen.
Antworten
Zu viele Anzeigen?
pistipanko
Punkte
725
Sie könnten das Collapsed-Ereignis in XAML festlegen:
<Setter Property="IsExpanded" Value="True" />
<Style.Triggers>
<EventTrigger RoutedEvent="Collapsed">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames
Duration="0"
Storyboard.TargetProperty="(TreeViewItem.IsExpanded)">
<DiscreteBooleanKeyFrame KeyTime="0" Value="True" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
Eirik
Punkte
4005
Sie können das Collapsed-Ereignis des TreeViewItems auf folgende Weise festlegen:
private void TreeViewItem_Collapsed(object sender, RoutedEventArgs e)
{
(sender as TreeViewItem).IsExpanded = true;
}
Es verhindert jedoch nicht das Zusammenklappen, sondern erweitert es automatisch, wenn es zusammenklappt.
H.B.
Punkte
140726
Einfach das Template neu erstellen für die TreeViewItems
, damit sie nicht einmal einen Pfeil haben (und keinen ausklappbaren Bereich).
z.B.
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<StackPanel>
<ContentPresenter ContentSource="Header"/>
<ItemsPresenter Margin="20,0,0,0"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
(Das ist das absolute Minimum, du wirst Triggers haben wollen, um die aktuelle Auswahl anzuzeigen, falls du das brauchst)