void diagramView_ConnectorDragEnd(object sender, ConnDragEndRoutedEventArgs evtArgs) { foreach (Node n in diagramModel.Nodes) { n.IsDragConnectionOver = false; } }
//Event for changing the LineStyle of the Lien/connector void diagramView_AfterConnectionCreate(object sender, ConnDragEndRoutedEventArgs evtArgs) { LineConnector line = evtArgs.Connector; line.LineStyle.Stroke = Brushes.Black; line.LineStyle.StrokeThickness = 2; line.TailDecoratorShape = DecoratorShape.None; }
//Revert chages if it is an invalid connection void diagramView_ConnectorDragEnd(object sender, ConnDragEndRoutedEventArgs evtArgs) { if (!newConnDropped) { //If HeadNode or HeadPort is changed if (isHead) { //Revert changes if it is an invalid connection if (evtArgs.Connector.HeadNode != null && evtArgs.Connector.ConnectionHeadPort != null) { if (!(evtArgs.Connector.ConnectionHeadPort.Tag as string).Contains("In")) { evtArgs.Connector.HeadNode = oldNode; evtArgs.Connector.ConnectionHeadPort = oldPort; } } else { evtArgs.Connector.HeadNode = oldNode; evtArgs.Connector.ConnectionHeadPort = oldPort; } } //If TailNode or TailPort is Changed if (!isHead) { //Revert changes if it is an invalid connection if (evtArgs.Connector.TailNode != null && evtArgs.Connector.ConnectionTailPort != null) { if (!(evtArgs.Connector.ConnectionTailPort.Tag as string).Contains("Out")) { evtArgs.Connector.TailNode = oldNode; evtArgs.Connector.ConnectionTailPort = oldPort; } } else { evtArgs.Connector.TailNode = oldNode; evtArgs.Connector.ConnectionTailPort = oldPort; } } } //If new connection is created else { //If it is an invalid connection delete it. LineConnector DroppedConnector = evtArgs.Connector; if (DroppedConnector.HeadNode != null && DroppedConnector.ConnectionHeadPort != null) { if (!(DroppedConnector.ConnectionHeadPort.Tag as string).Contains("Out")) { diagramControl.Model.Connections.Remove(DroppedConnector); } } else { diagramControl.Model.Connections.Remove(DroppedConnector); } if (DroppedConnector.TailNode != null && DroppedConnector.ConnectionTailPort != null) { if (!(DroppedConnector.ConnectionTailPort.Tag as string).Contains("In")) { diagramControl.Model.Connections.Remove(DroppedConnector); } } else { diagramControl.Model.Connections.Remove(DroppedConnector); } } newConnDropped = false; }