我正在使用PreviewMouseDown,PreviewMouseMove和PreviewMouseUp处理TreeView中的拖放事件,但是,存在问题。
在我的PreviewMouseDown处理程序中,我设置了所有内容,以防启动拖动(在Move事件中检测到),但是我设置了e.Handled = true。这意味着我的树上不会生成标准选择事件!
我想在Up事件中做的是调用标准的树视图选择更改事件 - 除了我不能调用树外的事件。那么这样做的正确方法是什么?
我尝试过使用标准的MouseDown,MouseMove和MouseUp事件,但是我的多选功能会出现问题,这意味着我需要使用这些事件的预览版本。
答案 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)