/// <summary> /// Symmetrize the shapes. /// </summary> /// <param name="selectedShapes"></param> /// <param name="msoFlipCmd"></param> /// <param name="adjustPosition"></param> private static void Symmetrize(PowerPoint.ShapeRange selectedShapes, MsoFlipCmd msoFlipCmd, Action<PPShape, PPShape> adjustPosition) { try { for (int i = 1; i <= selectedShapes.Count; i++) { var originalShape = new PPShape(selectedShapes[i]); var newShape = originalShape.Duplicate(); newShape.Flip(msoFlipCmd); newShape.Select(MsoTriState.msoFalse); adjustPosition.Invoke(originalShape, newShape); } } catch (Exception e) { Logger.LogException(e, "Symmetrize"); } }