使用预览拖放WPF TreeView

时间:2010-06-05 07:03:12

标签: .net wpf treeview drag-and-drop preview

我正在使用PreviewMouseDown,PreviewMouseMove和PreviewMouseUp处理TreeView中的拖放事件,但是,存在问题。

在我的PreviewMouseDown处理程序中,我设置了所有内容,以防启动拖动(在Move事件中检测到),但是我设置了e.Handled = true。这意味着我的树上不会生成标准选择事件!

我想在Up事件中做的是调用标准的树视图选择更改事件 - 除了我不能调用树外的事件。那么这样做的正确方法是什么?

我尝试过使用标准的MouseDown,MouseMove和MouseUp事件,但是我的多选功能会出现问题,这意味着我需要使用这些事件的预览版本。

1 个答案:

答案 0 :(得分:1)

我的解决方案是不使用预览处理程序,而是使用MouseDown,MouseMove和MouseUp。

事件的顺序是:

* MouseDown (set up for possible drag)
* SelectionChanged (remember any selection change)
* MouseMove (here we might go into a drag operation)
* MouseUp (if we went into a drag operation, all done, otherwise process the multiple selection stuff)