public override void HandleDragDrop(object sender, DragEventArgs e) { DragDataObject data = e.Data.GetData(typeof(DragDataObject)) as DragDataObject; if (data != null) { AddToContainerRecursive(data.Controls); } base.HandleDragDrop(sender, e); }
IDragHandler IDragDropService.GetDragHandler(System.Windows.Forms.IDataObject data) { TreeListNode node = GetNode(data); if (node != null && !data.GetDataPresent(typeof(DragDataObject))) { XRControl[] controls = GetTemplateControlsFromData(node); DragDataObject obj = CreateDragData(controls, ZoomService.GetInstance(DesignerHost)); data.SetData(typeof(DragDataObject), obj); return(new MyControlDragHandler(DesignerHost)); } return(base.GetDragHandler(data)); }
private void panelKernels_MouseMove(object sender, MouseEventArgs e) { try { if (_mouseDownOn == null) { return; } // Start Drag DragDataObject dragObject = new DragDataObject(_mouseDownOn.Item2, _mouseDownOn.Item1, _kernels[_mouseDownOn.Item2]); DataObject dragData = new DataObject(DATAFORMAT_KERNEL, dragObject); DragDrop.DoDragDrop(_mouseDownOn.Item1, dragData, DragDropEffects.Move); _mouseDownOn = null; // this way another drag won't start until they release and reclick } catch (Exception ex) { MessageBox.Show(ex.ToString(), this.Title, MessageBoxButton.OK, MessageBoxImage.Error); } }