2017-03-21 4 views
0

Je travaille sur un addin Powerpoint, qui aide à créer des diapositives d'agenda. Je dois insérer une diapositive à un endroit spécifique, ce qui est facile en utilisant presentation.Slides.AddSlide (index, customlayout). Mais puisque j'utilise aussi des sections, cela insère toujours la diapositive dans la première section (par défaut).Powerpoint VSTO comment insérer la diapositive dans la section

Voici un exemple de structure. Je voudrais remplacer Page 1 à la position actuelle de . Pour cela, j'aurais besoin d'insérer une diapositive à slideIndex = 2, mais dans l'état actuel, la diapositive se retrouvera en dessous de "Page d'en-tête".

  • par défaut Section
    • Header Page
  • Section 1
    • Page 1
    • page 2

Et voici un code J'utilise

private static PPT.Slide RefreshDefaultAgendaFormat(PPT.Presentation presentation, PPT.CustomLayout customAgendaLayout, PPT.Slide currentSlide) 
    { 
     int tempindex = currentSlide.SlideIndex; 
     int tempSectionIndex = currentSlide.sectionIndex; 

     currentSlide.Delete(); 
     currentSlide = presentation.Slides.AddSlide(tempindex, customAgendaLayout); 

     return currentSlide; 
    } 

Répondre

0

j'ai réussi à le résoudre en changeant l'ordre des opérations et l'ajouter à l'indice actuel + 1.

int tempindex = currentSlide.SlideIndex; 
    int tempSectionIndex = currentSlide.sectionIndex; 
    PPT.Slide newSlide = presentation.Slides.AddSlide(tempindex + 1, customAgendaLayout); 
    currentSlide.Delete(); 
    return newSlide;