我有两个小应用程序:图像文件浏览器和图像查看器。
资源管理器使用标准树视图来显示文件系统中的内容。
查看器支持拖放以加载文件。
我想将一个文件条目从我的资源管理器拖到我的查看器中并让它加载图像。如果我需要访问特定信息,资源管理器中的每个节点都会在其标记中包含一个 FileInfo 对象。
这可能吗?
注意:我可以将查看器直接构建到资源管理器中,但我想看看是否可以将对象拖入和拖出应用程序。
从您的自定义应用程序中获取数据的一些基本代码...
DataObject d = new DataObject();
d.SetData(DataFormats.Serializable, myObject);
myForm.DoDragDrop(d, DragDropEffects.Copy);
您通常从识别拖动源、UIElement 或 ContentElement 开始,然后为 MouseMove 事件创建一个处理程序。那就是上面的代码应该去的地方。
在放置目标上,您还可以识别元素,将 AllowDrop 设置为 true,并实现 Drop 事件处理程序。看看Drag and Drop Overview应该很有帮助。