WPF 中 ListView 的插入标记
Insertion mark for ListView in WPF
我需要在拖放系统期间为我的 ListView 创建插入标记。
(作为幻灯片)。我在 Componentowl 中找到了插入标记,但我需要在 ListView 中为拖放创建自己的插入标记。
理论上应该这样做:
处理可拖动元素的 MouseLeftButtonDown
、MouseMove
和 MouseLeftButtonUp
事件。按下鼠标按钮时,您需要在元素上 capture mouse
以便在拖动时获得 MouseMove
事件,在释放按钮时获得 release the capture
事件。
在 MouseMove
事件处理程序中,您需要找出鼠标下的元素并在 Popup
控件或 Adorner Layer
中显示 'insertion mark'(弹出控件用于显示内容在所有内容之上)并更新其位置。
或者,您可以在放置目标元素上使用 DragEnter
、DragOver
和 DragLeave
事件处理程序,以在弹出层或装饰层中添加插入标记。
您可以阅读这篇文章:
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/
我需要在拖放系统期间为我的 ListView 创建插入标记。 (作为幻灯片)。我在 Componentowl 中找到了插入标记,但我需要在 ListView 中为拖放创建自己的插入标记。
理论上应该这样做:
处理可拖动元素的 MouseLeftButtonDown
、MouseMove
和 MouseLeftButtonUp
事件。按下鼠标按钮时,您需要在元素上 capture mouse
以便在拖动时获得 MouseMove
事件,在释放按钮时获得 release the capture
事件。
在 MouseMove
事件处理程序中,您需要找出鼠标下的元素并在 Popup
控件或 Adorner Layer
中显示 'insertion mark'(弹出控件用于显示内容在所有内容之上)并更新其位置。
或者,您可以在放置目标元素上使用 DragEnter
、DragOver
和 DragLeave
事件处理程序,以在弹出层或装饰层中添加插入标记。
您可以阅读这篇文章: 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/