protected override void OnMouseUp(MouseButtonEventArgs e) { var connections = designerCanvas.Children.OfType <Connection>(); foreach (var connection in connections) { connection.IsHitTestVisible = true; } if (HitConnector != null && HitConnector.IsSinkConnector && (!HitConnector.OnlyOneConnectionCanEnd || !HitConnector.Connections.Any(x => Equals(x.Sink, HitConnector)))) { Connector sourceConnector = this.sourceConnector; Connector sinkConnector = this.HitConnector; Connection newConnection = designerCanvas.ConnectionGenerator(sourceConnector, sinkConnector, designerCanvas.PathFinder); if (designerCanvas.ConnectionStyle != null) { newConnection.Style = designerCanvas.ConnectionStyle; } this.designerCanvas.setZIndex(newConnection, designerCanvas.Children.Count); this.designerCanvas.Children.Add(newConnection); this.designerCanvas.raiseDesignerCanvasChanged(); } if (HitDesignerItem != null) { this.HitDesignerItem.IsDragConnectionOver = false; } if (this.IsMouseCaptured) { this.ReleaseMouseCapture(); } AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this.designerCanvas); if (adornerLayer != null) { adornerLayer.Remove(this); } }