首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将文件拖放到WPF中

将文件拖放到WPF中
EN

Stack Overflow用户
提问于 2011-04-14 19:26:35
回答 2查看 82.9K关注 0票数 122

我需要将一个图像文件放到我的WPF应用程序中。我目前有一个事件触发,当我放入文件,但我不知道下一步该怎么做。如何获取图像?sender对象是图像还是控件?

代码语言:javascript
复制
private void ImagePanel_Drop(object sender, DragEventArgs e)
{
    //what next, dont know how to get the image object, can I get the file path here?
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-14 20:36:44

这基本上就是你想要做的。

代码语言:javascript
复制
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]);
  }
}

此外,不要忘记在XAML中实际挂钩事件,以及设置AllowDrop属性。

代码语言:javascript
复制
<StackPanel Name="ImagePanel" Drop="ImagePanel_Drop" AllowDrop="true">
    ...
</StackPanel>
票数 237
EN

Stack Overflow用户

发布于 2011-04-14 19:33:07

图像文件包含在e参数中,该参数是DragEventArgs class的实例。

( sender参数包含对引发事件的对象的引用。)

具体地说,请检查e.Data member;正如文档所解释的那样,这将返回对包含来自拖动事件的数据的数据对象(IDataObject)的引用。

IDataObject接口提供了许多方法来检索您想要的数据对象。您可能希望从调用GetFormats method开始,以便找出正在处理的数据的格式。(例如,它是实际的图像还是简单的图像文件路径?)

然后,一旦您确定了被拖入的文件的格式,您将调用GetData方法的一个特定重载来实际检索特定格式的数据对象。

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5662509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档