C# PowerPoint中添加、修改和删除动画

为了让PowerPoint文档更加精美,在制作文档的过程中,我们通常会给PowerPoint文档中的元素如形状、图片、表格等添加动画。本文将介绍如何使用.NET PowerPoint组件Spire.Presentation和C#编程的方式给PowerPoint中的形状添加动画,并修改和删除现有动画。


如何在PowerPoint中添加动画


在开始前我们可以了解一下PowerPoint中的动画。在PowerPoint中,动画大致可分为以下四大类:

1.  进入

2.  强调

3.  退出

4.  动作路径


其中进入、强调和退出类型下有多种不同的预设动画效果,有些动画效果还可以添加子效果,例如“进入”分类下的“随机线条”动画效果,可以设置水平方向或垂直方向子效果(默认为水平方向)。下图展示了如何在PowerPoint中添加动画:

1.png


如何在Spire.Presentation中添加动画


Spire.Presentation支持约151种动画效果(可以在AnimationEffectType枚举中查看),这些动画效果及其所属分类和子效果,请参见文末附表。


在使用以下代码前,需要下载Spire.Presentation安装, 并从安装路径下引用Spire.Presentation.dll到工程中(或可从NuGet搜索Spire.Presentation并安装)。


添加动画

//加载文档
Presentation ppt = new Presentation();
ppt.LoadFromFile("Input.pptx");
 
//获取第一张幻灯片
ISlide slide = ppt.Slides[0];
 
RectangleF rect = new RectangleF(50, 200, 200, 200);
//添加形状到幻灯片
IShape cubeShape = slide.Shapes.AppendShape(ShapeType.Cube, rect);
 
//给形状添加动画效果
AnimationEffectCollection sequence = slide.Timeline.MainSequence;
AnimationEffect effect = sequence.AddEffect(cubeShape, AnimationEffectType.Bounce);
 
//保存文档
ppt.SaveToFile("Output.pptx", FileFormat.Pptx2013);

 1.gif


通常我们添加的动画效果默认是“进入”效果,下面的代码将介绍如何添加“退出”动画效果:

//加载文档
Presentation ppt = new Presentation();
ppt.LoadFromFile("Input.pptx");
 
//获取第一张幻灯片
ISlide slide = ppt.Slides[0];
 
RectangleF rect = new RectangleF(50, 200, 200, 200);
//添加形状到幻灯片
IShape cubeShape = slide.Shapes.AppendShape(ShapeType.Cube, rect);
 
//给形状添加动画效果
AnimationEffectCollection sequence = slide.Timeline.MainSequence;
AnimationEffect effect = sequence.AddEffect(cubeShape, AnimationEffectType.RandomBars);
//将动画效果从默认的“进入”效果改为“退出”效果
effect.PresetClassType = TimeNodePresetClassType.Exit;
//给该动画添加子效果
effect.Subtype = AnimationEffectSubtype.Vertical;
 
//保存文档
ppt.SaveToFile("ExitAnimationEffect.pptx", FileFormat.Pptx2013);

 2.gif


修改动画

对文档中的现有动画,我们可以对其进行修改。下面的代码将介绍如何修改现有动画的类型和持续时间。


修改动画类型

//加载文档
Presentation ppt = new Presentation();
ppt.LoadFromFile("Output.pptx");
 
//获取第一张幻灯片
ISlide slide = ppt.Slides[0];
 
//修改第一个动画的类型
AnimationEffectCollection sequence = slide.Timeline.MainSequence;
sequence[0].AnimationEffectType = AnimationEffectType.GrowAndTurn;
 
//保存文本
ppt.SaveToFile("EditAnimationType.pptx", FileFormat.Pptx2013);


修改持续时间

//加载文档
Presentation ppt = new Presentation();
ppt.LoadFromFile("Output.pptx");
 
//获取第一张幻灯片
ISlide slide = ppt.Slides[0];
 
//修改第一个动画的持续时间
AnimationEffectCollection sequence = slide.Timeline.MainSequence;
sequence[0].Timing.Duration = 5;
 
//保存文档
ppt.SaveToFile("EditAnimationTime.pptx", FileFormat.Pptx2013);


删除动画

//加载文档
Presentation ppt = new Presentation();
ppt.LoadFromFile("Output.pptx");
 
//获取第一张幻灯片
ISlide slide = ppt.Slides[0];
 
//删除第一个动画
AnimationEffectCollection sequence = slide.Timeline.MainSequence;
sequence.RemoveAt(0);
 
//保存文档
ppt.SaveToFile("RemoveAnimation.pptx", FileFormat.Pptx2013);

附表(Spire.Presentation中动画效果及其所属分类和子效果):

动画效果

分类

子效果

Appear

Entrance or Exit

EffectSubtype.None

CurveUpDown

Entrance or Exit

EffectSubtype.None

Ascend

Entrance or Exit

EffectSubtype.None

Blast

Emphasis

EffectSubtype.None

Blinds

Entrance or Exit

·  EffectSubtype.Horizontal

·  EffectSubtype.Vertical

Blink

Emphasis

EffectSubtype.None

BoldFlash

Emphasis

EffectSubtype.None

BoldReveal

Emphasis

EffectSubtype.None

Boomerang

Entrance or Exit

EffectSubtype.None

Bounce

Entrance or Exit

EffectSubtype.None

Box

Entrance or Exit

·  EffectSubtype.In

·  EffectSubtype.Out

BrushOnColor

Emphasis

EffectSubtype.None

BrushOnUnderline

Emphasis

EffectSubtype.None

CenterRevolve

Entrance or Exit

EffectSubtype.None

ChangeFillColor

Emphasis

·  EffectSubtype.Instant

·  EffectSubtype.Gradual

·    EffectSubtype.GradualAndCycleClockwise

·    EffectSubtype.GradualAndCycleCounterClockwise

ChangeFont

Emphasis

·  EffectSubtype.Instant

·  EffectSubtype.Gradual

ChangeFontColor

Emphasis

·  EffectSubtype.Instant

·  EffectSubtype.Gradual

·    EffectSubtype.GradualAndCycleClockwise

·    EffectSubtype.GradualAndCycleCounterClockwise

ChangeFontSize

Emphasis

·  EffectSubtype.Instant

·  EffectSubtype.Gradual

ChangeFontStyle

Emphasis

·  EffectSubtype.FontBold

·  EffectSubtype.FontItalic

·    EffectSubtype.FontUnderline

ChangeLineColor

Emphasis

·  EffectSubtype.Instant

·  EffectSubtype.Gradual

·    EffectSubtype.GradualAndCycleClockwise

·    EffectSubtype.GradualAndCycleCounterClockwise

Checkerboard

Entrance or Exit

·  EffectSubtype.Vertical

·  EffectSubtype.Across

Circle

Entrance or Exit

·  EffectSubtype.In

·  EffectSubtype.Out

ColorBlend

Emphasis

EffectSubtype.None

ColorTypewriter

Entrance or Exit

EffectSubtype.None

ColorWave

Emphasis

EffectSubtype.None

ComplementaryColor

Emphasis

EffectSubtype.None

ComplementaryColor2

Emphasis

EffectSubtype.None

Compress

Entrance or Exit

EffectSubtype.None

ContrastingColor

Emphasis

EffectSubtype.None

Crawl

Entrance or Exit

·  EffectSubtype.Right

·  EffectSubtype.Left

·  EffectSubtype.Top

·  EffectSubtype.Bottom

Credits

Entrance or Exit

EffectSubtype.None

Custom

-

-

Darken

Emphasis

EffectSubtype.None

Desaturate

Emphasis

EffectSubtype.None

Descend

Entrance or Exit

EffectSubtype.None

Diamond

Entrance or Exit

·  EffectSubtype.In

·  EffectSubtype.Out

Dissolve

Entrance or Exit

EffectSubtype.None

EaseInOut

Entrance or Exit

EffectSubtype.None

Expand

Entrance or Exit

EffectSubtype.None

Fade

Entrance or Exit

EffectSubtype.None

FadedSwivel

Entrance or Exit

EffectSubtype.None

FadedZoom

Entrance or Exit

·  EffectSubtype.None

·  EffectSubtype.Center

FlashBulb

Emphasis

EffectSubtype.None

FlashOnce

Entrance or Exit

EffectSubtype.None

Flicker

Emphasis

EffectSubtype.None

Flip

Entrance or Exit

EffectSubtype.None

Float

Entrance or Exit

EffectSubtype.None

Fly

Entrance or Exit

·  EffectSubtype.Right

·  EffectSubtype.Left

·  EffectSubtype.Top

·  EffectSubtype.Bottom

·  EffectSubtype.TopLeft

·  EffectSubtype.TopRight

·    EffectSubtype.BottomLeft

·  EffectSubtype.BottomRight

Fold

Entrance or Exit

EffectSubtype.None

Glide

Entrance or Exit

EffectSubtype.None

GrowAndTurn

Entrance or Exit

EffectSubtype.None

GrowShrink

Emphasis

EffectSubtype.None

GrowWithColor

Emphasis

EffectSubtype.None

Lighten

Emphasis

EffectSubtype.None

LightSpeed

Entrance or Exit

EffectSubtype.None

Path4PointStar

Path

EffectSubtype.None

Path5PointStar

Path

EffectSubtype.None

Path6PointStar

Path

EffectSubtype.None

Path8PointStar

Path

EffectSubtype.None

PathArcDown

Path

EffectSubtype.None

PathArcLeft

Path

EffectSubtype.None

PathArcRight

Path

EffectSubtype.None

PathArcUp

Path

EffectSubtype.None

PathBean

Path

EffectSubtype.None

PathBounceLeft

Path

EffectSubtype.None

PathBounceRight

Path

EffectSubtype.None

PathBuzzsaw

Path

EffectSubtype.None

PathCircle

Path

EffectSubtype.None

PathCrescentMoon

Path

EffectSubtype.None

PathCurvedSquare

Path

EffectSubtype.None

PathCurvedX

Path

EffectSubtype.None

PathCurvyLeft

Path

EffectSubtype.None

PathCurvyRight

Path

EffectSubtype.None

PathCurvyStar

Path

EffectSubtype.None

PathDecayingWave

Path

EffectSubtype.None

PathDiagonalDownRight

Path

EffectSubtype.None

PathDiagonalUpRight

Path

EffectSubtype.None

PathDiamond

Path

EffectSubtype.None

PathDown

Path

EffectSubtype.None

PathEqualTriangle

Path

EffectSubtype.None

PathFigure8Four

Path

EffectSubtype.None

PathFootball

Path

EffectSubtype.None

PathFunnel

Path

EffectSubtype.None

PathHeart

Path

EffectSubtype.None

PathHeartbeat

Path

EffectSubtype.None

PathHexagon

Path

EffectSubtype.None

PathHorizontalFigure8

Path

EffectSubtype.None

PathInvertedSquare

Path

EffectSubtype.None

PathInvertedTriangle

Path

EffectSubtype.None

PathLeft

Path

EffectSubtype.None

PathLoopdeLoop

Path

EffectSubtype.None

PathNeutron

Path

EffectSubtype.None

PathOctagon

Path

EffectSubtype.None

PathParallelogram

Path

EffectSubtype.None

PathPeanut

Path

EffectSubtype.None

PathPentagon

Path

EffectSubtype.None

PathPlus

Path

EffectSubtype.None

PathPointyStar

Path

EffectSubtype.None

PathRight

Path

EffectSubtype.None

PathRightTriangle

Path

EffectSubtype.None

PathSCurve1

Path

EffectSubtype.None

PathSCurve2

Path

EffectSubtype.None

PathSineWave

Path

EffectSubtype.None

PathSpiralLeft

Path

EffectSubtype.None

PathSpiralRight

Path

EffectSubtype.None

PathSpring

Path

EffectSubtype.None

PathSquare

Path

EffectSubtype.None

PathStairsDown

Path

EffectSubtype.None

PathSwoosh

Path

EffectSubtype.None

PathTeardrop

Path

EffectSubtype.None

PathTrapezoid

Path

EffectSubtype.None

PathTurnDown

Path

EffectSubtype.None

PathTurnRight

Path

EffectSubtype.None

PathTurnUp

Path

EffectSubtype.None

PathTurnUpRight

Path

EffectSubtype.None

PathUp

Path

EffectSubtype.None

PathUser

Path

EffectSubtype.None

PathVerticalFigure8

Path

EffectSubtype.None

PathWave

Path

EffectSubtype.None

PathZigzag

Path

EffectSubtype.None

Peek

Entrance or Exit

·  EffectSubtype.Bottom

·  EffectSubtype.Left

·  EffectSubtype.Right

·  EffectSubtype.Top

Pinwheel

Entrance or Exit

EffectSubtype.None

Plus

Entrance or Exit

·  EffectSubtype.In

·  EffectSubtype.Out

RandomBars

Entrance or Exit

·    EffectSubtype.Horizontal

·  EffectSubtype.Vertical

RandomEffects

Entrance or Exit

EffectSubtype.None

RiseUp

Entrance

EffectSubtype.None

Shimmer

Emphasis

EffectSubtype.None

Sling

Entrance or Exit

EffectSubtype.None

Spin

Emphasis

EffectSubtype.None

Spinner

Emphasis

EffectSubtype.None

Spiral

Entrance or Exit

EffectSubtype.None

Split

Entrance or Exit

·    EffectSubtype.HorizontalIn

·  EffectSubtype.HorizontalOut

·    EffectSubtype.VerticalIn

·    EffectSubtype.VerticalOut

Stretch

Entrance or Exit

·  EffectSubtype.Right

·  EffectSubtype.Left

·  EffectSubtype.Top

·  EffectSubtype.Bottom

·  EffectSubtype.Across

Strips

Entrance or Exit

·  EffectSubtype.UpLeft

·  EffectSubtype.UpRight

·  EffectSubtype.DownLeft

·    EffectSubtype.DownRight

StyleEmphasis

Emphasis

EffectSubtype.None

Swish

Entrance or Exit

EffectSubtype.None

Swivel

Entrance or Exit

·    EffectSubtype.Horizontal

·  EffectSubtype.Vertical

Teeter

Emphasis

EffectSubtype.None

Thread

Emphasis

EffectSubtype.None

Transparency

Emphasis

EffectSubtype.None

Unfold

Entrance or Exit

EffectSubtype.None

VerticalGrow

Emphasis

EffectSubtype.None

Wave

Emphasis

EffectSubtype.None

Wedge

Entrance or Exit

EffectSubtype.None

Wheel

Entrance or Exit

·  EffectSubtype.Wheel1

·  EffectSubtype.Wheel2

·  EffectSubtype.Wheel3

·  EffectSubtype.Wheel4

·  EffectSubtype.Wheel8

Whip

Entrance or Exit

EffectSubtype.None

Wipe

Entrance or Exit

·  EffectSubtype.Top

·  EffectSubtype.Right

·  EffectSubtype.Bottom

·  EffectSubtype.Left

Magnify

Entrance or Exit

EffectSubtype.None

Zoom

Entrance or Exit

·  EffectSubtype.In

·  EffectSubtype.Out

·  EffectSubtype.InCenter   - only for Entrance type

·  EffectSubtype.OutBottom   - only for Entrance type

·    EffectSubtype.OutSlightly

·    EffectSubtype.InSlightly

·    EffectSubtype.OutCenter - only for Exit type

·  EffectSubtype.InBottom   - only for Exit type

注:Entrance表示“进入”, Exit表示“退出”,Emphasis表示“强调”,Path表示“动作路径”;EffectSubtype.None表示该效果无子效果。


猜你喜欢

转载自blog.51cto.com/13688031/2152757