private void HitTesting(Point testPoint) { bool hitConnectorFlag = false; DependencyObject hitObject = this.connector.ParentDiagramItem.ParentDiagram.InputHitTest(testPoint) as DependencyObject; while (hitObject != null && hitObject != this.connector.ParentDiagramItem && hitObject.GetType() != typeof (DiagramCanvas)) { if (hitObject is Connector) { this.HitConnector = hitObject as Connector; hitConnectorFlag = true; } if (hitObject is DiagramItem) { HitDiagramItem = hitObject as DiagramItem; if (!hitConnectorFlag) HitConnector = null; return; } hitObject = VisualTreeHelper.GetParent(hitObject); } }
private void ConnectorLayoutUpdated(object sender, EventArgs e) { this.diagramItem = this.GetDiagramItem(); if (this.diagramItem == null) throw new NullReferenceException("Can't find DiagramItem parent"); if (this.ParentDiagramItem.ParentDiagram != null) { this.Position = this.TransformToAncestor(this.ParentDiagramItem.ParentDiagram) .Transform(new Point(this.Width / 2, this.Height / 2)); } }