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

Posted

技术标签:

【中文标题】如何将图片从资源管理器拖放到 WPF 控件上?【英文标题】:How can I drag and drop a picture from Explorer onto a WPF control? 【发布时间】:2012-05-06 09:04:37 【问题描述】:

我四处寻找答案,但似乎没有一个明确的例子来说明如何做到这一点!

我只是希望能够从桌面/资源管理器中抓取图片并将其拖放到 WPF 图像控件或类似控件上。

谁能指出我正确的方向?我已经看到了大量关于从应用程序到应用程序、在应用程序内或从应用程序到桌面拖放的示例,但反之则几乎没有。

我猜需要某种形式的剪贴板交互。

【问题讨论】:

【参考方案1】:

您需要在图像控件上启用拖放功能,然后只需在事件处理程序中打开您拖放到它的文件即可。

查看Drag and drop files into WPF的答案 (如果有帮助,请记住对该问题的最高答案进行投票:))

private void ImagePanel_Drop(object sender, DragEventArgs e)


  if (e.Data.GetDataPresent(DataFormats.FileDrop))
  
    // Note that you can have more than one file.
    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);

    // Assuming you have one file that you care about, pass it off to whatever
    // handling code you have defined.
    HandleFileOpen(files[0]);
  

【讨论】:

我认为 HandleFileOpen 是您自己定义的一种方法。然后我将如何从此字符串中设置图像控件的图像源?我之前只使用项目本身的资源完成了这项工作。非常感谢您迄今为止的帮助:) 是的 HandlFileOpen 是你自己定义的方法,所以现在你有了打开文件和设置图片源需要的文件路径,看下面的文章“你也可以从一个物理文件” - nahidulkibria.blogspot.co.uk/2009/01/…

以上是关于如何将图片从资源管理器拖放到 WPF 控件上?的主要内容,如果未能解决你的问题,请参考以下文章

将文件拖放到 wpf/C# 应用程序时,如何在 Windows 资源管理器中维护文件顺序?

从 Windows 文件资源管理器拖放到 Windows 窗体不起作用

从 Windows 资源管理器拖放到我的应用程序的文本框

启用从资源管理器拖放到 Run-As-Administrator 应用程序

绕过 UAC 以允许从非提升源拖放到我们提升的应用程序

从 Java Swing 应用程序拖放到 Windows 资源管理器