/// <summary> /// Gets the drag data wrapper. /// </summary> /// <param name="e">The <see cref="DragEventArgs"/> instance containing the event data.</param> /// <returns>CefDragDataWrapper.</returns> public static IDragData GetDragData(this DragEventArgs e) { // Convert Drag Data var dragData = DragData.Create(); // Files dragData.IsFile = e.Data.GetDataPresent(DataFormats.FileDrop); if (dragData.IsFile) { // As per documentation, we only need to specify FileNames, not FileName, when dragging into the browser (http://magpcss.org/ceforum/apidocs3/projects/(default)/CefDragData.html) foreach (var filePath in (string[])e.Data.GetData(DataFormats.FileDrop)) { var displayName = Path.GetFileName(filePath); dragData.AddFile(filePath.Replace("\\", "/"), displayName); } } // Link/Url var link = GetLink(e.Data); dragData.IsLink = !string.IsNullOrEmpty(link); if (dragData.IsLink) { dragData.LinkUrl = link; } // Text/HTML dragData.IsFragment = e.Data.GetDataPresent(DataFormats.Text); if (dragData.IsFragment) { dragData.FragmentText = (string)e.Data.GetData(DataFormats.Text); var htmlData = (string)e.Data.GetData(DataFormats.Html); if (htmlData != String.Empty) { dragData.FragmentHtml = htmlData; } } return(dragData); }