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); }
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); } }