我需要将一个图像文件放到我的WPF应用程序中。我目前有一个事件触发,当我放入文件,但我不知道下一步该怎么做。如何获取图像?sender
对象是图像还是控件?
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?
}
发布于 2011-04-14 20:36:44
这基本上就是你想要做的。
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
属性。
<StackPanel Name="ImagePanel" Drop="ImagePanel_Drop" AllowDrop="true">
...
</StackPanel>
发布于 2011-04-14 19:33:07
图像文件包含在e
参数中,该参数是DragEventArgs
class的实例。
( sender
参数包含对引发事件的对象的引用。)
具体地说,请检查e.Data
member;正如文档所解释的那样,这将返回对包含来自拖动事件的数据的数据对象(IDataObject
)的引用。
IDataObject
接口提供了许多方法来检索您想要的数据对象。您可能希望从调用GetFormats
method开始,以便找出正在处理的数据的格式。(例如,它是实际的图像还是简单的图像文件路径?)
然后,一旦您确定了被拖入的文件的格式,您将调用GetData
方法的一个特定重载来实际检索特定格式的数据对象。
https://stackoverflow.com/questions/5662509
复制相似问题