Изменение настроек анимационного эффекта фигуры с помощью VSTO

#c# #powerpoint

Вопрос:

Я пытаюсь разработать надстройку VSTO для PowerPoint. Мне нужна надстройка, чтобы иметь возможность изменять настройки анимационного эффекта фигуры.

В настоящее время у меня проблема с изменением настройки анимационного эффекта фигуры из VSTO. Каждый раз, когда я пытался применить изменения к свойствам эффекта анимации для выделения и типа выхода, указанный эффект анимации исчезал из списка на панели анимации, но без проблем, когда это анимация типа входа. Должно быть, я что-то здесь упустил.

Это код, который я пробовал до сих пор:

 public void ApplyChanges(int selectedAfterAnim, bool smoothStart, bool smoothEnd, bool bounceEnd, bool autoReverese) {
  PowerPoint.Effect effect = Globals.ThisAddIn.Application.ActivePresentation.Slides[slideIndex].TimeLine.MainSequence[effectIndex];
  PowerPoint.Shape shape = effect.Shape;
  
  //The selectedAfterAnim value is a ComboBox SelectedIndex
  switch (selectedAfterAnim) {
  case 0:
    shape.AnimationSettings.AfterEffect = PowerPoint.PpAfterEffect.ppAfterEffectNothing;
    break;
  case 1:
    shape.AnimationSettings.AfterEffect = PowerPoint.PpAfterEffect.ppAfterEffectDim;
    break;
  case 2:
    shape.AnimationSettings.AfterEffect = PowerPoint.PpAfterEffect.ppAfterEffectHide;
    break;
  case 3:
    shape.AnimationSettings.AfterEffect = PowerPoint.PpAfterEffect.ppAfterEffectHideOnClick;
    break;
  default:
    _ = MessageBox.Show("Error while applying changes to shape's after animation setting.", "Error");
    break;
  }

  effect.Timing.SmoothStart = smoothStart ? Microsoft.Office.Core.MsoTriState.msoTrue : Microsoft.Office.Core.MsoTriState.msoFalse;
  effect.Timing.SmoothEnd = smoothEnd ? Microsoft.Office.Core.MsoTriState.msoTrue : Microsoft.Office.Core.MsoTriState.msoFalse;
  effect.Timing.BounceEnd = bounceEnd ? Microsoft.Office.Core.MsoTriState.msoTrue : Microsoft.Office.Core.MsoTriState.msoFalse;
  effect.Timing.AutoReverse = autoReverese ? Microsoft.Office.Core.MsoTriState.msoTrue : Microsoft.Office.Core.MsoTriState.msoFalse;
}
 

Я новичок как в C#, так и в надстройках VSTO. Любая помощь очень ценится.

Комментарии:

1. VSTO ничего для этого не предусматривает. Это чистый вопрос PowerPoint.