public void Align(IList <IVisio.Shape> target_shapes, Drawing.AlignmentVertical align) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); int shape_count = this.GetTargetSelection(target_shapes); if (shape_count < 2) { return; } var application = this.Client.Application.Get(); using (var undoscope = this.Client.Application.NewUndoScope("Align Shapes")) { bool glue_to_guide = false; var selection = this.Client.Selection.Get(); var halign = IVisio.VisHorizontalAlignTypes.visHorzAlignNone; var valign = ArrangeCommands._map_isd_valign_to_visio_valign(align); selection.Align(halign, valign, glue_to_guide); } }
private static IVisio.VisVerticalAlignTypes _map_isd_valign_to_visio_valign(Drawing.AlignmentVertical v) { switch (v) { case Drawing.AlignmentVertical.Top: return(IVisio.VisVerticalAlignTypes.visVertAlignTop); case Drawing.AlignmentVertical.Center: return(IVisio.VisVerticalAlignTypes.visVertAlignMiddle); case Drawing.AlignmentVertical.Bottom: return(IVisio.VisVerticalAlignTypes.visVertAlignBottom); default: throw new System.ArgumentOutOfRangeException(); } }
private static IVisio.VisUICmds _map_valign_to_uicmd(Drawing.AlignmentVertical v) { switch (v) { case Drawing.AlignmentVertical.Top: return(IVisio.VisUICmds.visCmdDistributeTop); case Drawing.AlignmentVertical.Center: return(IVisio.VisUICmds.visCmdDistributeMiddle); case Drawing.AlignmentVertical.Bottom: return(IVisio.VisUICmds.visCmdDistributeBottom); default: throw new System.ArgumentOutOfRangeException(); } }
public void Distribute(IList <IVisio.Shape> target_shapes, Drawing.AlignmentVertical valign) { this.Client.Application.AssertApplicationAvailable(); this.Client.Document.AssertDocumentAvailable(); int shape_count = this.GetTargetSelection(target_shapes); if (shape_count < 1) { return; } var cmd = ArrangeCommands._map_valign_to_uicmd(valign); var application = this.Client.Application.Get(); application.DoCmd((short)cmd); }