您必须允许在窗口上放置,然后处理放置事件。然后,您可以读取 FileDrop 以获取文件在磁盘上的位置并将其加载到图像或您需要的任何其他位置。
public MainWindow()
{
InitializeComponent();
this.AllowDrop = true;
this.Drop += new DragEventHandler(MainWindow_Drop);
}
void MainWindow_Drop(object sender, DragEventArgs e)
{
BitmapImage bi = new BitmapImage(new Uri(((string[])e.Data.GetData("FileDrop"))[0]));
image1.Source = bi;
// Get the different parameters available and see which work for you.
foreach (var param in e.Data.GetFormats())
Console.WriteLine(param);
}
这是我从 firefox 拖到我的应用程序时得到的参数列表。您可能对文件名或文件名W 感兴趣。将这些字符串与 GetData 方法一起使用以获取所需的数据。
text/x-moz-url
FileGroupDescriptor
FileGroupDescriptorW
FileContents
UniformResourceLocator
UniformResourceLocatorW
text/x-moz-url-data
text/x-moz-url-desc
text/uri-list
text/_moz_htmlcontext
text/_moz_htmlinfo
text/html
HTML Format
Text
UnicodeText
System.String
application/x-moz-nativeimage
DeviceIndependentBitmap
FileDrop
FileNameW
FileName
Preferred DropEffect
application/x-moz-file-promise-url
application/x-moz-file-promise-dest-filename
DragImageBits
DragContext