/// <summary> /// connect line /// </summary> /// <param name="hitPoint"></param> private void HitTesting(Point hitPoint) { bool hitConnectorFlag = false; DependencyObject hitObject = designerCanvas.InputHitTest(hitPoint) as DependencyObject; while (hitObject != null && hitObject != fixConnector.ParentDesignerItem && hitObject.GetType() != typeof(DesignerCanvas)) { if (hitObject is Connector) { //判断是否为输出点,并且只有一个连接 if ((hitObject as Connector).Type == CON_TYPE.OUTPUT && (hitObject as Connector).Connections.Count == 0) { HitConnector = hitObject as Connector; hitConnectorFlag = true; } } if (hitObject is DesignerItem) { HitDesignerItem = hitObject as DesignerItem; if (!hitConnectorFlag) { HitConnector = null; } return; } hitObject = VisualTreeHelper.GetParent(hitObject); } HitConnector = null; HitDesignerItem = null; }
private void HitTesting(Point hitPoint) { bool hitConnectorFlag = false; DependencyObject hitObject = designerCanvas.InputHitTest(hitPoint) as DependencyObject; while (hitObject != null && hitObject != sourceConnector.ParentDesignerItem && hitObject.GetType() != typeof(DesignerCanvas)) { if (hitObject is Connector) { HitConnector = hitObject as Connector; hitConnectorFlag = true; } if (hitObject is DesignerItem) { HitDesignerItem = hitObject as DesignerItem; if (!hitConnectorFlag) { HitConnector = null; } return; } hitObject = VisualTreeHelper.GetParent(hitObject); } HitConnector = null; HitDesignerItem = null; }