protected virtual void OnMouseDown(MouseDownEvent e) { if (active) { e.StopImmediatePropagation(); return; } if (!CanStartManipulation(e)) { return; } var graphElement = target as Port; if (graphElement == null) { return; } mouseDownPosition = e.localMousePosition; edgeCandidate = graphView != null?graphView.CreateEdgeView() : new EdgeView(); edgeDragHelper.draggedPort = graphElement; edgeDragHelper.edgeCandidate = edgeCandidate; if (edgeDragHelper.HandleMouseDown(e)) { active = true; target.CaptureMouse(); e.StopPropagation(); } else { edgeDragHelper.Reset(); edgeCandidate = null; } }