public override DragDropEffects InitiateDrag(IDataObject draggedData, DragDropEffects allowedEffects, LocalDragEventArgs args) { DataObject = draggedData; DragArgs = args; EffectsIn = allowedEffects; return(EffectsOut); }
private void OnMouseMoved(object?sender, LocalDragEventArgs e) { if (TryHandleIsMouseDownEvent(e)) { return; } TryHandleDragDeltaRange(sender, e); SendEvent(sender, e); }
private bool TryHandleIsMouseDownEvent(LocalDragEventArgs e) { if (e.MessageType == MouseMessageType.Down) { mouseDownEventPendingDragActivation = e; return(true); } return(false); }
private void TryHandleDragDeltaRange(object?sender, LocalDragEventArgs e) { if (mouseDownEventPendingDragActivation == null) { return; } var offset = mouseDownEventPendingDragActivation.TransformedPoint - e.TransformedPoint; if (Math.Abs(offset.X) >= xTol || Math.Abs(offset.Y) >= yTol) { SendEvent(sender, mouseDownEventPendingDragActivation); mouseDownEventPendingDragActivation = null; } }
public override DragDropEffects InitiateDrag(IDataObject draggedData, DragDropEffects allowedEffects, LocalDragEventArgs args) => new DragHandler(this, args).InitiateDrag(draggedData, allowedEffects);
public void MouseMoved(LocalDragEventArgs e) { LastArgs = e; }
private void SendEvent(object?sender, LocalDragEventArgs e) { MouseMoved?.Invoke(sender, e); }
public abstract DragDropEffects InitiateDrag(IDataObject draggedData, DragDropEffects allowedEffects, LocalDragEventArgs args);