从WPF拖放到不同的目标[重复]

Posted

技术标签:

【中文标题】从WPF拖放到不同的目标[重复]【英文标题】:Drag & drop from WPF to different targets [duplicate] 【发布时间】:2015-11-30 07:10:07 【问题描述】:

我有一个带有树的 WFP 应用程序,我可以在其中拖放对象。

 DragDrop.DoDragDrop(dragSource, new DataObject(typeof(IFileObject), ((FilePresenter)dragSource.DataContext).FileObject), DragDropEffects.Move | DragDropEffects.Copy);

每个树对象也代表我硬盘上的一个文件。我还希望能够将该对象从我的 WPF 应用程序拖到资源管理器(以创建副本),或者拖到 Outlook 以创建附件。

我假设(可能是错误的)它取决于目标我必须附加什么样的 DataObject,但在开始拖动时,我不知道用户会将 DataObject 放在哪里。

我知道其他应用程序可以创建不同类型的水滴。例如,当我在 Outlook 中拖动电子邮件时,我可以将其移动到不同的文件夹。将其拖到资源管理器将创建一个 msg 文件。将其拖至文本编辑器会将电子邮件的主题作为文本插入。

如何初始化DragDrop.DoDragDrop(...) 以使用我的内部对象在我的应用程序内部拖放并在我的应用程序外部提供文件名?

这不是Can we drop a file in windows explorer from WPF window? 的副本我的问题是如何支持BOTH 内部和外部拖放(如果可能的话)。

【问题讨论】:

Can we drop a file in windows explorer from WPF window? 和 ***.com/questions/5662509/… 的可能重复项 @netaholic:请再次阅读我的问题。第一个可能的副本并不旨在支持内部和外部的拖放。第二个问题是关于如何进入WPF,这不是我问的。 【参考方案1】:

您可以在这篇帖子中找到答案:c# Drag and Drop from my custom app to notepad

调查正确的格式可能有助于将一些数据从资源管理器中删除到您的应用程序并尝试相应地构建数据。

【讨论】:

感谢您指出正确的副本(那里的答案解决了我的问题)。我会结束这个问题。

以上是关于从WPF拖放到不同的目标[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将图片从资源管理器拖放到 WPF 控件上?

当目标元素和目标元素在不同的帧中时,如何使用 selenium-webdriver 执行拖放?

WPF 拖放 C# 也可以拖动图像

WPF学习- AllowDrop 用户控件启用拖放功能

如何允许从 Windows 资源管理器拖放到 C# WPF 应用程序中?

如果打开一个对话框,则始终启用WPF拖放