WPF 中 ListView 的插入标记

Insertion mark for ListView in WPF

我需要在拖放系统期间为我的 ListView 创建插入标记。 (作为幻灯片)。我在 Componentowl 中找到了插入标记,但我需要在 ListView 中为拖放创建自己的插入标记。

理论上应该这样做:

处理可拖动元素的 MouseLeftButtonDownMouseMoveMouseLeftButtonUp 事件。按下鼠标按钮时,您需要在元素上 capture mouse 以便在拖动时获得 MouseMove 事件,在释放按钮时获得 release the capture 事件。

MouseMove 事件处理程序中,您需要找出鼠标下的元素并在 Popup 控件或 Adorner Layer 中显示 'insertion mark'(弹出控件用于显示内容在所有内容之上)并更新其位置。

或者,您可以在放置目标元素上使用 DragEnterDragOverDragLeave 事件处理程序,以在弹出层或装饰层中添加插入标记。

您可以阅读这篇文章: http://blogs.msdn.com/b/jaimer/archive/2007/07/12/drag-drop-in-wpf-explained-end-to-end.aspx

或本文:https://cuteprogramming.wordpress.com/2010/12/19/drag-and-drop-reordering-in-wpf-listview/ which refers to this article: http://www.codeproject.com/KB/WPF/ListViewDragDropManager.aspx

这是另一个解决方案: https://codeblitz.wordpress.com/2009/06/17/wpf-drag-drop-adorner/