Exemplo n.º 1
0
        private static double GetPositionOnShape(VisioScripting.Models.ShapeXFormData xform, VisioScripting.Models.ShapeRelativePosition pos)
        {
            var r = xform.GetRectangle();

            switch (pos)
            {
            case VisioScripting.Models.ShapeRelativePosition.PinY:
                return(xform.PinY);

            case VisioScripting.Models.ShapeRelativePosition.PinX:
                return(xform.PinX);

            case VisioScripting.Models.ShapeRelativePosition.Left:
                return(r.Left);

            case VisioScripting.Models.ShapeRelativePosition.Right:
                return(r.Right);

            case VisioScripting.Models.ShapeRelativePosition.Top:
                return(r.Top);

            case VisioScripting.Models.ShapeRelativePosition.Bottom:
                return(r.Bottom);
            }

            throw new System.ArgumentOutOfRangeException(nameof(pos));
        }
Exemplo n.º 2
0
        private static VisioAutomation.Geometry.Point GetPinPositionForCorner(VisioScripting.Models.ShapeXFormData input_xfrm, VisioAutomation.Geometry.Point new_lower_left, VisioScripting.Models.SnapCornerPosition corner)
        {
            var size   = new VisioAutomation.Geometry.Size(input_xfrm.Width, input_xfrm.Height);
            var locpin = new VisioAutomation.Geometry.Point(input_xfrm.LocPinX, input_xfrm.LocPinY);

            switch (corner)
            {
            case VisioScripting.Models.SnapCornerPosition.LowerLeft:
            {
                return(new_lower_left.Add(locpin.X, locpin.Y));
            }

            case VisioScripting.Models.SnapCornerPosition.UpperRight:
            {
                return(new_lower_left.Subtract(size.Width, size.Height).Add(locpin.X, locpin.Y));
            }

            case VisioScripting.Models.SnapCornerPosition.LowerRight:
            {
                return(new_lower_left.Subtract(size.Width, 0).Add(locpin.X, locpin.Y));
            }

            case VisioScripting.Models.SnapCornerPosition.UpperLeft:
            {
                return(new_lower_left.Subtract(0, size.Height).Add(locpin.X, locpin.Y));
            }

            default:
            {
                throw new System.ArgumentOutOfRangeException(nameof(corner), "Unsupported corner");
            }
            }
        }