本文整理汇总了C#中Microsoft.Office.Interop.PowerPoint.Duplicate方法的典型用法代码示例。如果您正苦于以下问题:C# Microsoft.Office.Interop.PowerPoint.Duplicate方法的具体用法?C# Microsoft.Office.Interop.PowerPoint.Duplicate怎么用?C# Microsoft.Office.Interop.PowerPoint.Duplicate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Office.Interop.PowerPoint
的用法示例。
在下文中一共展示了Microsoft.Office.Interop.PowerPoint.Duplicate方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CloneSlide
/// <summary>
/// Clone an existing slide (make a copy)
/// </summary>
/// <param name="presentation">PPT.Presentation object instance</param>
/// <param name="slide">PPT.Slide instance that is to be cloned</param>
/// <param name="destination">Destination for the cloned slide</param>
/// <param name="locationIndex">Optional index for the new slide (slide.Index)</param>
/// <returns></returns>
public PPT.SlideRange CloneSlide(
PPT.Presentation presentation,
PPT.Slide slide,
Locations.Location destination,
int locationIndex = 0)
{
PPT.SlideRange dupeSlide = slide.Duplicate();
switch (destination)
{
case Locations.Location.First:
dupeSlide.MoveTo(1);
break;
case Locations.Location.Last:
dupeSlide.MoveTo((presentation.Slides.Count));
break;
case Locations.Location.Custom:
dupeSlide.MoveTo(locationIndex);
break;
}
return dupeSlide;
}
示例2: CreateSpotlightDuplicate
private static void CreateSpotlightDuplicate(PowerPoint.Shape spotlightShape)
{
//Create hidden duplicate shape. This is needed for recreating spotlights
PowerPoint.Shape duplicateShape = spotlightShape.Duplicate()[1];
duplicateShape.Visible = Office.MsoTriState.msoFalse;
duplicateShape.Left = spotlightShape.Left;
duplicateShape.Top = spotlightShape.Top;
}
示例3: AddFrameAnimationEffects
private static void AddFrameAnimationEffects(PowerPointSlide animationSlide, PowerPoint.Shape initialShape, float incrementLeft, float incrementTop, float incrementWidth, float incrementHeight, float incrementRotation ,float incrementFont, float duration, int numFrames)
{
PowerPoint.Shape lastShape = initialShape;
PowerPoint.Sequence sequence = animationSlide.TimeLine.MainSequence;
for (int i = 1; i <= numFrames; i++)
{
PowerPoint.Shape dupShape = initialShape.Duplicate()[1];
if (i != 1 && animationType != FrameMotionAnimationType.kZoomToAreaDeMagnify)
sequence[sequence.Count].Delete();
if (animationType == FrameMotionAnimationType.kInSlideAnimate || animationType == FrameMotionAnimationType.kZoomToAreaPan || animationType == FrameMotionAnimationType.kZoomToAreaDeMagnify)
animationSlide.DeleteShapeAnimations(dupShape);
if (animationType == FrameMotionAnimationType.kZoomToAreaPan)
dupShape.Name = "PPTLabsMagnifyPanAreaGroup" + DateTime.Now.ToString("yyyyMMddHHmmssffff");
dupShape.LockAspectRatio = Office.MsoTriState.msoFalse;
dupShape.Left = initialShape.Left;
dupShape.Top = initialShape.Top;
if (incrementWidth != 0.0f)
dupShape.ScaleWidth((1.0f + (incrementWidth * i)), Office.MsoTriState.msoFalse, Office.MsoScaleFrom.msoScaleFromMiddle);
if (incrementHeight != 0.0f)
dupShape.ScaleHeight((1.0f + (incrementHeight * i)), Office.MsoTriState.msoFalse, Office.MsoScaleFrom.msoScaleFromMiddle);
if (incrementRotation != 0.0f)
dupShape.Rotation += (incrementRotation * i);
if (incrementLeft != 0.0f)
dupShape.Left += (incrementLeft * i);
if (incrementTop != 0.0f)
dupShape.Top += (incrementTop * i);
if (incrementFont != 0.0f)
dupShape.TextFrame.TextRange.Font.Size += (incrementFont * i);
if (i == 1 && (animationType == FrameMotionAnimationType.kInSlideAnimate || animationType == FrameMotionAnimationType.kZoomToAreaPan))
{
PowerPoint.Effect appear = sequence.AddEffect(dupShape, PowerPoint.MsoAnimEffect.msoAnimEffectAppear, PowerPoint.MsoAnimateByLevel.msoAnimateLevelNone, PowerPoint.MsoAnimTriggerType.msoAnimTriggerOnPageClick);
}
else
{
PowerPoint.Effect appear = sequence.AddEffect(dupShape, PowerPoint.MsoAnimEffect.msoAnimEffectAppear, PowerPoint.MsoAnimateByLevel.msoAnimateLevelNone, PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious);
appear.Timing.TriggerDelayTime = ((duration / numFrames) * i);
}
PowerPoint.Effect disappear = sequence.AddEffect(lastShape, PowerPoint.MsoAnimEffect.msoAnimEffectAppear, PowerPoint.MsoAnimateByLevel.msoAnimateLevelNone, PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious);
disappear.Exit = Office.MsoTriState.msoTrue;
disappear.Timing.TriggerDelayTime = ((duration / numFrames) * i);
lastShape = dupShape;
}
if (animationType == FrameMotionAnimationType.kInSlideAnimate || animationType == FrameMotionAnimationType.kZoomToAreaPan || animationType == FrameMotionAnimationType.kZoomToAreaDeMagnify)
{
PowerPoint.Effect disappearLast = sequence.AddEffect(lastShape, PowerPoint.MsoAnimEffect.msoAnimEffectAppear, PowerPoint.MsoAnimateByLevel.msoAnimateLevelNone, PowerPoint.MsoAnimTriggerType.msoAnimTriggerAfterPrevious);
disappearLast.Exit = Office.MsoTriState.msoTrue;
disappearLast.Timing.TriggerDelayTime = duration;
}
}
示例4: DuplicateAsCoverImage
/// <summary>
/// Creates a cover image from a copy of the shape to obstruct the viewer while preloading images in the background.
/// </summary>
public static void DuplicateAsCoverImage(PowerPointSlide animationSlide, PowerPoint.Shape shape)
{
var coverImage = shape.Duplicate()[1];
coverImage.Left = shape.Left;
coverImage.Top = shape.Top;
animationSlide.RemoveAnimationsForShape(coverImage);
var sequence = animationSlide.TimeLine.MainSequence;
var effectDisappear = sequence.AddEffect(coverImage, PowerPoint.MsoAnimEffect.msoAnimEffectFade,
PowerPoint.MsoAnimateByLevel.msoAnimateLevelNone,
PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious);
effectDisappear.Exit = Office.MsoTriState.msoTrue;
effectDisappear.Timing.Duration = 0.01f;
effectDisappear.MoveTo(1);
}
示例5: PreloadShape
/// <summary>
/// Preloads a shape within the slide to reduce lag. Call after the animations for the shape have been created.
/// </summary>
public static void PreloadShape(PowerPointSlide animationSlide, PowerPoint.Shape shape, bool addCoverImage=true)
{
// The cover image is used to cover the screen while the preloading happens behind the cover image.
PowerPoint.Shape coverImage = null;
if (addCoverImage)
{
coverImage = shape.Duplicate()[1];
coverImage.Left = shape.Left;
coverImage.Top = shape.Top;
animationSlide.RemoveAnimationsForShape(coverImage);
}
float originalWidth = shape.Width;
float originalHeight = shape.Height;
float originalLeft = shape.Left;
float originalTop = shape.Top;
// fit the shape exactly in the screen for preloading.
float scaleRatio = Math.Min(PowerPointPresentation.Current.SlideWidth / shape.Width,
PowerPointPresentation.Current.SlideHeight / shape.Height);
animationSlide.RelocateShapeWithoutPath(shape, 0, 0, shape.Width * scaleRatio, shape.Height * scaleRatio);
var trigger = PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious;
var effectMotion = AddMotionAnimation(animationSlide, shape, shape.Left, shape.Top, originalLeft + (originalWidth - shape.Width) / 2, originalTop + (originalHeight - shape.Height) / 2, 0, ref trigger);
var effectResize = AddResizeAnimation(animationSlide, shape, shape.Width, shape.Height, originalWidth, originalHeight, 0, ref trigger);
// Make "cover" image disappear after preload.
PowerPoint.Effect effectDisappear = null;
if (addCoverImage)
{
var sequence = animationSlide.TimeLine.MainSequence;
effectDisappear = sequence.AddEffect(coverImage, PowerPoint.MsoAnimEffect.msoAnimEffectFade,
PowerPoint.MsoAnimateByLevel.msoAnimateLevelNone,
PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious);
effectDisappear.Exit = Office.MsoTriState.msoTrue;
effectDisappear.Timing.Duration = 0.01f;
}
int firstEffectIndex = animationSlide.IndexOfFirstEffect(shape);
// Move the animations to just before the index of the first effect.
if (effectDisappear != null) effectDisappear.MoveTo(firstEffectIndex);
if (effectResize != null) effectResize.MoveTo(firstEffectIndex);
if (effectMotion != null) effectMotion.MoveTo(firstEffectIndex);
}