将文件拖放到WPF中。
将文件拖放到WPF中。
我需要将一张图片文件拖入我的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? }
admin 更改状态以发布 2023年5月22日
图像文件包含在e
参数中,该参数是DragEventArgs
类的一个实例。
(sender
参数包含引发事件的对象的引用。)
具体来说,检查e.Data
成员;正如文档所解释的那样,它返回一个数据对象(IDataObject
) 的引用,该数据对象包含拖动事件的数据。
IDataObject
接口提供了一些方法来检索所需的数据对象。你可能想从调用GetFormats
方法开始,以便找出正在使用的数据的格式。(例如,它是实际图像,还是只是图像文件的路径?)
然后,一旦你已经鉴定出被拖入的文件的格式,你将调用GetData
方法的特定重载之一,以实际检索特定格式的数据对象。
这基本上就是你想要做的。
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
属性。
...