示例#1
0
        /// <summary>
        /// Creates a snapshot of snapshotSlide after exit animations and places an image of the slide in this slide
        /// Returns the image shape.
        /// </summary>
        public Shape InsertExitSnapshotOfSlide(PowerPointSlide snapshotSlide)
        {
            PowerPointSlide previousSlideCopy = snapshotSlide.Duplicate();

            previousSlideCopy.Shapes
            .Cast <Shape>()
            .Where(shape => previousSlideCopy.HasExitAnimation(shape))
            .ToList()
            .ForEach(shape => shape.Delete());

            previousSlideCopy.Copy();
            Shape slidePicture = _slide.Shapes.PasteSpecial(PpPasteDataType.ppPastePNG)[1];

            previousSlideCopy.Delete();
            return(slidePicture);
        }
示例#2
0
        private static PowerPoint.Shape GetStepBackWithoutBackgroundShapeToZoom(PowerPointSlide currentSlide, PowerPointSlide addedSlide, PowerPointSlide previousSlide)
        {
            Globals.ThisAddIn.Application.ActiveWindow.Selection.Unselect();
            Globals.ThisAddIn.Application.ActiveWindow.View.GotoSlide(addedSlide.Index);

            var copiedShapes = new List<PowerPoint.Shape>();
            foreach (PowerPoint.Shape sh in previousSlide.Shapes)
            {
                if (!previousSlide.HasExitAnimation(sh) && !Graphics.IsHidden(sh))
                {
                    sh.Copy();
                    PowerPoint.Shape shapeCopy = addedSlide.Shapes.Paste()[1];
                    PowerPointLabsGlobals.CopyShapeAttributes(sh, ref shapeCopy);
                    copiedShapes.Add(shapeCopy);
                } 
            }

            SelectAllShape(copiedShapes);
            PowerPoint.Selection sel = Globals.ThisAddIn.Application.ActiveWindow.Selection;
            PowerPoint.Shape shapeGroup = null;
            if (sel.ShapeRange.Count > 1)
                shapeGroup = sel.ShapeRange.Group();
            else
                shapeGroup = sel.ShapeRange[1];

            shapeGroup.Copy();
            PowerPoint.Shape previousSlidePicture = addedSlide.Shapes.PasteSpecial(PowerPoint.PpPasteDataType.ppPastePNG)[1];
            PowerPointLabsGlobals.CopyShapePosition(shapeGroup, ref previousSlidePicture);
            previousSlidePicture.Name = "PPTZoomOutShape" + DateTime.Now.ToString("yyyyMMddHHmmssffff");
            shapeGroup.Delete();

            return previousSlidePicture;
        }
示例#3
0
        private static void AddDisappearAnimation(Shape shape, PowerPointSlide inSlide, int effectStartIndex)
        {
            if (inSlide.HasExitAnimation(shape)) return;

            var effectFade = inSlide.GetNativeSlide().TimeLine.MainSequence.AddEffect(shape, MsoAnimEffect.msoAnimEffectAppear,
                MsoAnimateByLevel.msoAnimateLevelNone, MsoAnimTriggerType.msoAnimTriggerWithPrevious, effectStartIndex);
            effectFade.Exit = MsoTriState.msoTrue;
        }