Пример #1
0
        public void DistributeVertical(VisioScripting.Models.TargetShapes targets, VisioScripting.Models.AlignmentVertical valign)
        {
            this._client.Application.AssertApplicationAvailable();
            this._client.Document.AssertDocumentAvailable();

            int shape_count = targets.SetSelectionGetSelectedCount(this._client);

            if (shape_count < 1)
            {
                return;
            }

            IVisio.VisUICmds cmd;
            switch (valign)
            {
            case VisioScripting.Models.AlignmentVertical.Top:
                cmd = IVisio.VisUICmds.visCmdDistributeTop;
                break;

            case VisioScripting.Models.AlignmentVertical.Center: cmd = IVisio.VisUICmds.visCmdDistributeMiddle; break;

            case VisioScripting.Models.AlignmentVertical.Bottom: cmd = IVisio.VisUICmds.visCmdDistributeBottom; break;

            default: throw new System.ArgumentOutOfRangeException();
            }

            var application = this._client.Application.Get();

            application.DoCmd((short)cmd);
        }
Пример #2
0
        public void AlignVertical(VisioScripting.Models.TargetShapes targets, VisioScripting.Models.AlignmentVertical align)
        {
            this._client.Application.AssertApplicationAvailable();
            this._client.Document.AssertDocumentAvailable();

            int shape_count = targets.SetSelectionGetSelectedCount(this._client);

            if (shape_count < 2)
            {
                return;
            }

            // Set the align enums
            var halign = IVisio.VisHorizontalAlignTypes.visHorzAlignNone;

            IVisio.VisVerticalAlignTypes valign;
            switch (align)
            {
            case VisioScripting.Models.AlignmentVertical.Top: valign = IVisio.VisVerticalAlignTypes.visVertAlignTop; break;

            case VisioScripting.Models.AlignmentVertical.Center: valign = IVisio.VisVerticalAlignTypes.visVertAlignMiddle; break;

            case VisioScripting.Models.AlignmentVertical.Bottom: valign = IVisio.VisVerticalAlignTypes.visVertAlignBottom; break;

            default: throw new System.ArgumentOutOfRangeException();
            }

            const bool glue_to_guide = false;

            // Perform the alignment
            using (var undoscope = this._client.Application.NewUndoScope("Align Vertical"))
            {
                var selection = this._client.Selection.Get();
                selection.Align(halign, valign, glue_to_guide);
            }
        }