从 WPF 拖放到不同的目标

Drag & drop from WPF to different targets

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

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

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

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

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

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

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

你可以在这个Post中找到答案:c# Drag and Drop from my custom app to notepad

研究正确的格式可能有助于将一些数据从资源管理器拖放到您的应用程序并尝试相应地构建数据。