如何在鼠标单击TreeViewItem箭头(在视图上)后停止树视图折叠事件? 我需要一直展示我的树视图。
答案 0 :(得分:4)
您可以在XAML中设置Collapsed事件:
<TreeView
Name="myTreeView"
ItemsSource="{Binding dataSource}">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<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>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
答案 1 :(得分:1)
您可以将TreeViewItem上的Collapsed事件设置为:
private void TreeViewItem_Collapsed(object sender, RoutedEventArgs e)
{
(sender as TreeViewItem).IsExpanded = true;
}
它不会阻止它崩溃,但它会在崩溃时自动展开。
答案 2 :(得分:0)
只有retemplate TreeViewItems
甚至没有箭头(和可折叠区域)。
e.g。
<Style TargetType="TreeViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<StackPanel>
<ContentPresenter ContentSource="Header"/>
<ItemsPresenter Margin="20,0,0,0"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
(这是最低限度,如果需要,你需要有触发器来显示当前选择)