protected virtual void OnPreviewDropTarget(PreviewDropTargetEventArgs e) { EventHandler <PreviewDropTargetEventArgs> eh = this.Events[PreviewDropTargetEventKey] as EventHandler <PreviewDropTargetEventArgs>; if (eh != null) { eh(this, e); } }
protected virtual void OnPreviewDropTarget(PreviewDropTargetEventArgs e) { EventHandler <PreviewDropTargetEventArgs> eventHandler = this.Events[RadDragDropService.PreviewDropTargetEventKey] as EventHandler <PreviewDropTargetEventArgs>; if (eventHandler == null) { return; } eventHandler((object)this, e); }
private ISupportDrop HitTestElementTree(ComponentThemableElementTree elementTree, Point screenMouse, out Point resultDropLocation) { if (elementTree == null) { resultDropLocation = Point.Empty; return(null); } resultDropLocation = Point.Empty; Point clientMouse = elementTree.Control.PointToClient(screenMouse); RadElement hitElement = elementTree.GetElementAtPoint(clientMouse); ISupportDrag dragInstance = this.Context as ISupportDrag; ISupportDrop dropTarget = null; ISupportDrop hitTarget = null; while (hitElement != null) { hitTarget = hitElement as ISupportDrop; dropTarget = null; if (hitTarget != null && hitTarget.AllowDrop) { RadElement dropTargetElement = hitTarget as RadElement; if (dropTargetElement != null) { resultDropLocation = dropTargetElement.PointFromControl(clientMouse); } else { resultDropLocation = clientMouse; } dropTarget = hitTarget; } //raise PreviewDropTarget event PreviewDropTargetEventArgs args = new PreviewDropTargetEventArgs(dragInstance, hitTarget); args.DropTarget = dropTarget; this.OnPreviewDropTarget(args); dropTarget = args.DropTarget; if (dropTarget != null) { return(dropTarget); } hitElement = hitElement.Parent; } return(null); }
private ISupportDrop HitTestElementTree( ComponentThemableElementTree elementTree, Point screenMouse, out Point resultDropLocation) { if (elementTree == null) { resultDropLocation = Point.Empty; return((ISupportDrop)null); } resultDropLocation = Point.Empty; Point client = elementTree.Control.PointToClient(screenMouse); RadElement radElement1 = elementTree.GetElementAtPoint(client); ISupportDrag context = this.Context as ISupportDrag; for (; radElement1 != null; radElement1 = radElement1.Parent) { ISupportDrop hitTarget = radElement1 as ISupportDrop; ISupportDrop supportDrop = (ISupportDrop)null; if (hitTarget != null && hitTarget.AllowDrop) { RadElement radElement2 = hitTarget as RadElement; resultDropLocation = radElement2 == null ? client : radElement2.PointFromControl(client); supportDrop = hitTarget; } PreviewDropTargetEventArgs e = new PreviewDropTargetEventArgs(context, hitTarget); e.DropTarget = supportDrop; this.OnPreviewDropTarget(e); ISupportDrop dropTarget = e.DropTarget; if (dropTarget != null) { return(dropTarget); } } return((ISupportDrop)null); }