首页 > 解决方案 > WPF - 我可以在 MouseUp 而不是 MouseDown 上选择一个节点吗?

问题描述

我有一个树视图设置,其中 SelectedItem 绑定到 ContentPresenter,以便 ContentPresenter 显示该树视图项的属性。该项目的属性之一是包含相同类型对象的列表框,我希望能够将其他节点从树视图拖到该列表框中。我能够实现拖放行为本身,但如果我想将节点 B 拖到节点 A 的列表框,我不能。只要我在节点 B 上左键单击(不释放),它就会变成 SelectedItem 并且 ContentPresenter 开始显示节点 B 而不是节点 A 的属性。我想更改行为,以便选择树视图节点需要完全单击(向上+向下)而不是仅仅向下。我尝试创建一个自定义事件处理程序,其中包含

private void TreeViewItemClickHandler(object sender, MouseButtonEventArgs e)
    {
        e.Handled = true;
    }

在 xaml 中,设置<EventSetter Event="MouseDown" Handler="TreeViewItemClickHandler"></EventSetter>不做任何事情,并<EventSetter Event="PreviewMouseDown" Handler="TreeViewItemClickHandler"></EventSetter>完全阻止点击。有没有办法使树视图节点选择仅在释放鼠标左键时发生?

标签: wpfwpf-controls

解决方案


推荐阅读