private void Animation(IPresentation presentation) { //Get the slide from the presentation ISlide slide = presentation.Slides[0]; //Access the animation sequence to create effects ISequence sequence = slide.Timeline.MainSequence; //Add motion path effect to the shape IEffect line1 = sequence.AddEffect(slide.Shapes[8] as IShape, EffectType.PathUp, EffectSubtype.None, EffectTriggerType.OnClick); IMotionEffect motionEffect = line1.Behaviors[0] as IMotionEffect; motionEffect.Timing.Duration = 1f; IMotionPath motionPath = motionEffect.Path; motionPath[1].Points[0].X = 0.00365f; motionPath[1].Points[0].Y = -0.27431f; //Add motion path effect to the shape IEffect line2 = sequence.AddEffect(slide.Shapes[3] as IShape, EffectType.PathDown, EffectSubtype.None, EffectTriggerType.WithPrevious); motionEffect = line2.Behaviors[0] as IMotionEffect; motionEffect.Timing.Duration = 0.75f; motionPath = motionEffect.Path; motionPath[1].Points[0].X = 0.00234f; motionPath[1].Points[0].Y = 0.43449f; //Add wipe effect to the shape IEffect wipe1 = sequence.AddEffect(slide.Shapes[1] as IShape, EffectType.Wipe, EffectSubtype.None, EffectTriggerType.AfterPrevious); wipe1.Behaviors[1].Timing.Duration = 1f; //Add fly effect to the shape IEffect fly1 = sequence.AddEffect(slide.Shapes[5] as IShape, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.AfterPrevious); fly1.Behaviors[1].Timing.Duration = 0.70f; fly1.Behaviors[2].Timing.Duration = 0.70f; ////Add wipe effect to the shape IEffect wipe2 = sequence.AddEffect(slide.Shapes[2] as IShape, EffectType.Wipe, EffectSubtype.None, EffectTriggerType.AfterPrevious); wipe2.Behaviors[1].Timing.Duration = 1f; ////Add fly effect to the shape IEffect fly2 = sequence.AddEffect(slide.Shapes[4] as IShape, EffectType.Fly, EffectSubtype.Right, EffectTriggerType.AfterPrevious); fly2.Behaviors[1].Timing.Duration = 0.70f; fly2.Behaviors[2].Timing.Duration = 0.70f; IEffect fly3 = sequence.AddEffect(slide.Shapes[6] as IShape, EffectType.Fly, EffectSubtype.Top, EffectTriggerType.AfterPrevious); fly3.Behaviors[1].Timing.Duration = 1.50f; fly3.Behaviors[2].Timing.Duration = 1.50f; ////Add flay effect to the shape IEffect fly4 = sequence.AddEffect(slide.Shapes[7] as IShape, EffectType.Fly, EffectSubtype.Left, EffectTriggerType.AfterPrevious); fly4.Behaviors[1].Timing.Duration = 0.50f; fly4.Behaviors[2].Timing.Duration = 0.50f; }
public static void Run() { //ExStart:AnimationsOnShapes // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Shapes(); // Create directory if it is not already present. bool IsExists = System.IO.Directory.Exists(dataDir); if (!IsExists) { System.IO.Directory.CreateDirectory(dataDir); } // Instantiate PrseetationEx class that represents the PPTX using (Presentation pres = new Presentation()) { ISlide sld = pres.Slides[0]; // Now create effect "PathFootball" for existing shape from scratch. IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 150, 250, 25); ashp.AddTextFrame("Animated TextBox"); // Add PathFootBall animation effect pres.Slides[0].Timeline.MainSequence.AddEffect(ashp, EffectType.PathFootball, EffectSubtype.None, EffectTriggerType.AfterPrevious); // Create some kind of "button". IShape shapeTrigger = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Bevel, 10, 10, 20, 20); // Create sequence of effects for this button. ISequence seqInter = pres.Slides[0].Timeline.InteractiveSequences.Add(shapeTrigger); // Create custom user path. Our object will be moved only after "button" click. IEffect fxUserPath = seqInter.AddEffect(ashp, EffectType.PathUser, EffectSubtype.None, EffectTriggerType.OnClick); // Created path is empty so we should add commands for moving. IMotionEffect motionBhv = ((IMotionEffect)fxUserPath.Behaviors[0]); PointF[] pts = new PointF[1]; pts[0] = new PointF(0.076f, 0.59f); motionBhv.Path.Add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, true); pts[0] = new PointF(-0.076f, -0.59f); motionBhv.Path.Add(MotionCommandPathType.LineTo, pts, MotionPathPointsType.Auto, false); motionBhv.Path.Add(MotionCommandPathType.End, null, MotionPathPointsType.Auto, false); //Write the presentation as PPTX to disk pres.Save(dataDir + "AnimExample_out.pptx", SaveFormat.Pptx); } //ExEnd:AnimationsOnShapes }