3

鼠标单击 TreeViewItem 箭头(在视图中)后,如何停止 treeview collaps 事件?我需要显示我的树视图一直在扩展。

4

3 回答 3

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>
于 2013-08-14T20:53:40.257 回答
1

您可以将 TreeViewItem 上的 Collapsed 事件设置为:

private void TreeViewItem_Collapsed(object sender, RoutedEventArgs e)
{
    (sender as TreeViewItem).IsExpanded = true;
}

但是,它并不能阻止它折叠,它只是在折叠时自动扩展它。

于 2012-05-09T14:33:59.007 回答
0

只需重新设计甚至没有TreeViewItems箭头(和可折叠区域)。

例如

<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>

(这是最低要求,如果需要,您将需要触发器来显示当前选择)

于 2012-05-09T14:11:15.977 回答