/// <summary> /// Event raised when the user has finished dragging a connector. /// </summary> private void ConnectorItem_DragCompleted(object source, ConnectorItemDragCompletedEventArgs e) { e.Handled = true; Trace.Assert((ConnectorItem)e.OriginalSource == this.draggedOutConnectorItem); Point mousePoint = Mouse.GetPosition(this); // // Figure out if the end of the connection was dropped on a connector. // ConnectorItem connectorDraggedOver = null; object connectorDataContextDraggedOver = null; DetermineConnectorItemDraggedOver(mousePoint, out connectorDraggedOver, out connectorDataContextDraggedOver); // // Now that connection dragging has completed, don't any feedback adorner. // ClearFeedbackAdorner(); // // Raise an event to inform application code that connection dragging is complete. // The application code can determine if the connection between the two connectors // is valid and if so it is free to make the appropriate connection in the view-model. // RaiseEvent(new ConnectionDragCompletedEventArgs(ConnectionDragCompletedEvent, this, this.draggedOutNodeDataContext, this.draggingConnectionDataContext, this.draggedOutConnectorDataContext, connectorDataContextDraggedOver)); this.IsDragging = false; this.IsNotDragging = true; this.IsDraggingConnection = false; this.IsNotDraggingConnection = true; this.draggedOutConnectorDataContext = null; this.draggedOutNodeDataContext = null; this.draggedOutConnectorItem = null; this.draggingConnectionDataContext = null; }