WPF / C#从ListView拖放到Canvas上

时间:2011-01-28 02:35:20

标签: c# wpf listview canvas drag-and-drop

我有一个带有自定义视图的ListView,用于将项目显示为图标。我也有一个普通的画布。我希望能够从ListView拖动一个项目并将其放入画布。

现在我已经到处寻找各种有关如何进行拖放操作的教程。似乎我发现的一切都根本不起作用或者比我需要的方式更多。在Canvas上挂起Drop事件并在ListView上的PreviewMouseMove事件中调用DoDragDrop似乎不起作用。我开始拖动,我在Canvas上得到DragEnter / DragOver但是从不触发drop事件(光标保持为(/))

我已经研究了一堆其他解决方案,例如DragPro目录库或CodeProject上的Drag Drop Smorgasbord。这些似乎旨在从控件中删除实际项目并将控件放在其他位置。这不是我需要的,我只需要从ListView中检测Canvas上的一个drop,传递一些数据(现在只是一个字符串)并使用该数据在Canvas中构建一个新的UIElement。 p>

是否有比使用DoDragDrop更简单的方法?我希望能够仍然有Adorners等,但似乎有些解决方案会比我应该做的更多,并且不会完全按照我的需要做。但

2 个答案:

答案 0 :(得分:0)

您是否在画布上设置了 AllowDrop =“True”属性?!? 你的第一个解决方案看起来整洁,它应该工作。

答案 1 :(得分:0)

线程创建者在这里...发布了一个未注册的帐户,但注册因为这个地方很酷!我想出了我的问题。事实证明我将DragEnter / DragOver中的效果设置为我不应该拥有的效果。

现在我觉得很傻。

感谢您的回复!