private void HitTesting(Point hitPoint)
        {
            bool hitConnectionNodeFlag = false;

            DependencyObject hitObject = DiagramCanvas.InputHitTest(hitPoint) as DependencyObject;

            while (hitObject != null &&
                   hitObject != sourceConnectionNode.ParentDiagramElement &&
                   hitObject.GetType() != typeof(DiagramCanvas))
            {
                if (hitObject is ConnectionNode)
                {
                    HitConnectionNode     = hitObject as ConnectionNode;
                    hitConnectionNodeFlag = true;
                }

                if (hitObject is DiagramElement)
                {
                    HitDiagramElement = hitObject as DiagramElement;
                    if (!hitConnectionNodeFlag)
                    {
                        HitConnectionNode = null;
                    }
                    return;
                }
                hitObject = VisualTreeHelper.GetParent(hitObject);
            }

            HitConnectionNode = null;
            HitDiagramElement = null;
        }