1

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

在我的 PreviewMouseDown 处理程序中,我将一切准备就绪,以防开始拖动(在 Move 事件中检测到),但是我设置了 e.Handled = true。这意味着标准选择事件不会在我的树上生成!

我希望在我的 Up 事件中能够做的是调用标准的树视图选择更改事件 - 除非我不能调用树之外的事件。那么正确的方法是什么?

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

4

1 回答 1

1

我对此的解决方案是不使用 Preview 处理程序,而是使用 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)
于 2010-06-07T09:19:49.143 回答