private void On_Mouse_Move(Object sender, MouseEventArgs e)
        {
            VertexView v_on_over = VertexHitTest(new Point(e.X, e.Y));
            EdgeView   e_on_over = EdgeHitTest(new Point(e.X, e.Y));

            foreach (VertexView v in Views.OfType <VertexView>())
            {
                if (v_on_over != null && v == v_on_over)
                {
                    v_on_over.Raise_MouseEnter();
                    v_on_over.Raise_MouseMove();
                }
                else
                {
                    v.Raise_MouseLeave();
                }
            }

            foreach (EdgeView v in Views.OfType <EdgeView>())
            {
                if (e_on_over != null && v == e_on_over)
                {
                    e_on_over.Raise_MouseEnter();
                }
                else
                {
                    v.Raise_MouseLeave();
                }
            }



            Refresh();
        }