/// <summary>
        /// Draw the rubberband.
        /// </summary>
        /// <param name="e"></param>
        /// <param name="control"></param>
        public static void DrawOnMouseMove(MouseEventArgs e, DiagramDesignerCanvas control)
        {
            if (IgnoreRubberbandSelectionOnce)
            {
                IgnoreRubberbandSelectionOnce = false;
                CancelRubberbandSelection();
                return;
            }

            if (RubberbandSelectionStartPoint.HasValue)
            {
                // if mouse button is not pressed we have no drag operation, ...
                if (e.LeftButton != MouseButtonState.Pressed)

                    RubberbandSelectionStartPoint = null;

                // ... but if mouse button is pressed and start
                // point value is set we do have one
                else
                {
                    Point pCurrent = e.GetPosition(control);
                    if (Math.Abs(pCurrent.X - RubberbandSelectionStartPoint.Value.X) > 5 ||
                        Math.Abs(pCurrent.Y - RubberbandSelectionStartPoint.Value.Y) > 5)
                    {
                        // create rubberband adorner
                        AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(control);
                        if (adornerLayer != null)
                        {
                            DiagramDesignerRubberbandAdorner adorner = new DiagramDesignerRubberbandAdorner(control, RubberbandSelectionStartPoint);
                            if (adorner != null)
                            {
                                adornerLayer.Add(adorner);
                            }
                        }
                    }
                }
            }

        }
        /// <summary>
        /// Draw the rubberband.
        /// </summary>
        /// <param name="e"></param>
        /// <param name="control"></param>
        public static void DrawOnMouseMove(MouseEventArgs e, DiagramDesignerCanvas control)
        {
            if (IgnoreRubberbandSelectionOnce)
            {
                IgnoreRubberbandSelectionOnce = false;
                CancelRubberbandSelection();
                return;
            }

            if (RubberbandSelectionStartPoint.HasValue)
            {
                // if mouse button is not pressed we have no drag operation, ...
                if (e.LeftButton != MouseButtonState.Pressed)
                {
                    RubberbandSelectionStartPoint = null;
                }

                // ... but if mouse button is pressed and start
                // point value is set we do have one
                else
                {
                    Point pCurrent = e.GetPosition(control);
                    if (Math.Abs(pCurrent.X - RubberbandSelectionStartPoint.Value.X) > 5 ||
                        Math.Abs(pCurrent.Y - RubberbandSelectionStartPoint.Value.Y) > 5)
                    {
                        // create rubberband adorner
                        AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(control);
                        if (adornerLayer != null)
                        {
                            DiagramDesignerRubberbandAdorner adorner = new DiagramDesignerRubberbandAdorner(control, RubberbandSelectionStartPoint);
                            if (adorner != null)
                            {
                                adornerLayer.Add(adorner);
                            }
                        }
                    }
                }
            }
        }