.net - WPF:如何使用嵌套(分层)控件实现拖放

标签 .net wpf silverlight

使用 WPF,我成功地实现了拖放以重新排列列表( View 或框)中的项目,并在列表之间拖放项目。

现在我正在尝试弄清楚如何使用嵌套列表实现拖放。

例如,我有一个包含项目的 ListView ,每个项目项都包含另一个任务 ListView 。我希望能够拖放以重新排列项目的顺序,还希望能够重新排序任务并在项目之间移动它们。

我的代码可以成功地完成其中之一,但我不知道如何同时做到这一点。

似乎有某种痛苦的解决方案会涉及 HitTest 以及嵌套列表的 z 顺序,但我找不到任何这样的例子。

任何人都可以提供任何指示吗?

仅供引用:我目前实现的工作代码基于以下两篇关于 WPF 拖放的优秀文章:

http://bea.stollnitz.com/blog/?p=53
http://www.codeproject.com/KB/WPF/ListViewDragDropManager.aspx

最佳答案

由于MouseMove wpf 中的大多数其他事件都是路由事件,您可以检查 e.OriginalSource在一个通用的事件处理程序中。然后,您可以根据鼠标所在的元素决定要拖动的元素,可能使用“查找满足条件的父项”辅助方法技术之一。此外,您可以设置 e.Handled如果您在视觉树中有多个订阅该事件的元素。

关于.net - WPF:如何使用嵌套(分层)控件实现拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/571407/

相关文章:

silverlight - 有没有办法对禁用的控件进行测试?

c# - 可拖动的 silverlight 用户控件

.net - Silverlight 与 WPF

c# - Web 应用程序中的静态变量

c# - 从未同步的代码块调用了对象同步方法

c# - 如何在触摸屏中滚动 ListView

.net - 代码和 XAML 中图像 URI 行为的区别

c# - 将大文本拆分为较小块的最快方法

c# - 找不到路径的一部分?

c# - WPF DataGrid(MultiSelector?)多次引发 SelectedItems CollectionChanged 事件