protected override void OnDragEnter(DragEventArgs e) { base.OnDragEnter(e); try { if (!CanFocus) { e.Effect = DragDropEffects.None; return; } var ddw = new DragDataWrapper(e.Data); var allowOpen = false; if (ddw.IsFileDrop) { var uri = new Uri(Path.GetFullPath(ddw.GetFilePath())); allowOpen = CanExecute(CommandOpenUri, uri); } else if (ddw.IsLinkDrop) { var uri = new Uri(ddw.GetLinkUri()); allowOpen = CanExecute(CommandOpenUri, uri); } e.Effect = allowOpen ? DragDropEffects.Link : DragDropEffects.None; } catch (Exception ex) { Logger.Error(ex); } }
protected override void OnDragDrop(DragEventArgs e) { base.OnDragDrop(e); try { if (!CanFocus) { return; } var ddw = new DragDataWrapper(e.Data); if (ddw.IsFileDrop) { var uri = new Uri(Path.GetFullPath(ddw.GetFilePath())); this.Activate(); this.BeginInvoke(new Action(() => OnCommand(CommandOpenUri, uri))); //string fileName = ddw.GetFilePath(); //if (fileName != string.Empty) //{ // this.Activate(); // this.BeginInvoke(new OpenFileHandler(OpenFile), fileName, true); //} } else if (ddw.IsLinkDrop) { var uri = new Uri(ddw.GetLinkUri()); this.Activate(); this.BeginInvoke(new Action(() => OnCommand(CommandOpenUri, uri))); //string linkUrl = ddw.GetLinkUri(); //if (linkUrl != string.Empty) //{ // Uri fileUri = new Uri(linkUrl); // this.Activate(); // this.BeginInvoke(new OpenUriHandler(OpenUri), fileUri); //} } } catch (Exception ex) { Logger.Error(ex); } }