public ComponentPoint Flip(bool horizontal)
        {
            ComponentPoint returnPoint = new ComponentPoint();
            if (horizontal)
                returnPoint.Offset = new Vector(-Offset.X, Offset.Y);
            else
                returnPoint.Offset = new Vector(Offset.X, -Offset.Y);

            if (RelativeToX == ComponentPosition.Start)
                returnPoint.RelativeToX = ComponentPosition.End;
            else if (RelativeToX == ComponentPosition.Middle)
                returnPoint.RelativeToX = ComponentPosition.Middle;
            else if (RelativeToX == ComponentPosition.End)
                returnPoint.RelativeToX = ComponentPosition.Start;

            if (RelativeToY == ComponentPosition.Start)
                returnPoint.RelativeToY = ComponentPosition.End;
            else if (RelativeToY == ComponentPosition.Middle)
                returnPoint.RelativeToY = ComponentPosition.Middle;
            else if (RelativeToY == ComponentPosition.End)
                returnPoint.RelativeToY = ComponentPosition.Start;

            return returnPoint;
        }