コード例 #1
0
        public static void AlignBottom(ShapeRange toAlign, float slideHeight)
        {
            var selectedShapes = new List<PPShape>();

            switch (AlignReference)
            {
                case AlignReferenceObject.Slide:
                    selectedShapes = ConvertShapeRangeToPPShapeList(toAlign);
                    foreach (var s in selectedShapes)
                    {
                        s.IncrementTop(slideHeight - s.VisualTop - s.AbsoluteHeight);
                    }
                    break;
                case AlignReferenceObject.SelectedShape:
                    if (toAlign.Count < 2)
                    {
                        throw new Exception(ErrorMessageFewerThanTwoSelection);
                    }

                    selectedShapes = ConvertShapeRangeToPPShapeList(toAlign);
                    var refShape = selectedShapes[0];
                    var lowestRefPoint = refShape.VisualTop + refShape.AbsoluteHeight;

                    for (var i = 1; i < selectedShapes.Count; i++)
                    {
                        var s = selectedShapes[i];
                        var lowestPoint = s.VisualTop + s.AbsoluteHeight;
                        s.IncrementTop(lowestRefPoint - lowestPoint);
                    }
                    break;
                case AlignReferenceObject.PowerpointDefaults:
                    if (toAlign.Count == 1)
                    {
                        toAlign.Align(MsoAlignCmd.msoAlignBottoms, MsoTriState.msoTrue);
                    }
                    else
                    {
                        toAlign.Align(MsoAlignCmd.msoAlignBottoms, MsoTriState.msoFalse);
                    }
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }
コード例 #2
0
        public static void AlignCenter(ShapeRange toAlign, float slideHeight, float slideWidth)
        {
            var selectedShapes = new List<PPShape>();

            switch (AlignReference)
            {
                case AlignReferenceObject.Slide:
                    selectedShapes = ConvertShapeRangeToPPShapeList(toAlign);
                    foreach (var s in selectedShapes)
                    {
                        s.IncrementTop(slideHeight / 2 - s.VisualTop - s.AbsoluteHeight / 2);
                        s.IncrementLeft(slideWidth / 2 - s.VisualLeft - s.AbsoluteWidth / 2);
                    }
                    break;
                case AlignReferenceObject.SelectedShape:
                    if (toAlign.Count < 2)
                    {
                        throw new Exception(ErrorMessageFewerThanTwoSelection);
                    }

                    selectedShapes = ConvertShapeRangeToPPShapeList(toAlign);
                    var refShape = selectedShapes[0];

                    for (var i = 1; i < selectedShapes.Count; i++)
                    {
                        var s = selectedShapes[i];
                        s.IncrementTop(refShape.VisualCenter.Y - s.VisualCenter.Y);
                        s.IncrementLeft(refShape.VisualCenter.X - s.VisualCenter.X);
                    }
                    break;
                case AlignReferenceObject.PowerpointDefaults:
                    if (toAlign.Count == 1)
                    {
                        toAlign.Align(MsoAlignCmd.msoAlignMiddles, MsoTriState.msoTrue);
                        toAlign.Align(MsoAlignCmd.msoAlignCenters, MsoTriState.msoTrue);
                    }
                    else
                    {
                        toAlign.Align(MsoAlignCmd.msoAlignMiddles, MsoTriState.msoFalse);
                        toAlign.Align(MsoAlignCmd.msoAlignCenters, MsoTriState.msoFalse);
                    }
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }
コード例 #3
0
        public static void AlignLeft(ShapeRange toAlign)
        {
            var selectedShapes = new List<PPShape>();

            switch (AlignReference)
            {
                case AlignReferenceObject.Slide:
                    selectedShapes = ConvertShapeRangeToPPShapeList(toAlign);
                    foreach (var s in selectedShapes)
                    {
                        s.IncrementLeft(-s.VisualLeft);
                    }
                    break;
                case AlignReferenceObject.SelectedShape:
                    if (toAlign.Count < 2)
                    {
                        throw new Exception(ErrorMessageFewerThanTwoSelection);
                    }

                    selectedShapes = ConvertShapeRangeToPPShapeList(toAlign);
                    var refShape = selectedShapes[0];

                    for (var i = 1; i < selectedShapes.Count; i++)
                    {
                        var s = selectedShapes[i];
                        s.IncrementLeft(refShape.VisualLeft - s.VisualLeft);
                    }
                    break;
                case AlignReferenceObject.PowerpointDefaults:

                    if (toAlign.Count == 1)
                    {
                        toAlign.Align(MsoAlignCmd.msoAlignLefts, MsoTriState.msoTrue);
                    }
                    else
                    {
                        toAlign.Align(MsoAlignCmd.msoAlignLefts, MsoTriState.msoFalse);
                    }
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }