Masters

Presentation.Masters property

Возвращает список всех слайдов-мастеров, определенных в презентации. Только для чтения IMasterSlideCollection.

public IMasterSlideCollection Masters { get; }

Примеры

Следующие примеры показывают, как добавить изображения к слайдам-мастерам презентации PowerPoint.

[C#]
using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];
    IMasterSlide masterSlide = slide.LayoutSlide.MasterSlide;
    IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
    masterSlide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
    pres.Save("pres.pptx", SaveFormat.Pptx);
}

Следующие примеры показывают, как изменить цвет фона слайда-мастера презентации PowerPoint.

[C#]
// Создайте экземпляр класса Presentation, представляющего файл презентации
using (Presentation pres = new Presentation())
{
    // Установите цвет фона мастера ISlide в цвет лесного зеленого
    pres.Masters[0].Background.Type = BackgroundType.OwnBackground;
    pres.Masters[0].Background.FillFormat.FillType = FillType.Solid;
    pres.Masters[0].Background.FillFormat.SolidFillColor.Color = Color.ForestGreen;
    // Запишите презентацию на диск
    pres.Save("SetSlideBackgroundMaster_out.pptx", SaveFormat.Pptx);
}

Следующие примеры показывают, как добавить макет слайда в презентацию PowerPoint.

[C#]
// Создайте класс Presentation, представляющий файл презентации
using (Presentation presentation = new Presentation("AccessSlides.pptx"))
{
    // Попытайтесь найти по типу макета слайда
    IMasterLayoutSlideCollection layoutSlides = presentation.Masters[0].LayoutSlides;
    ILayoutSlide layoutSlide = layoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? layoutSlides.GetByType(SlideLayoutType.Title);
    if (layoutSlide == null)
    {
        // Ситуация, когда презентация не содержит некоторых типов макетов.
        // Файл презентации содержит только пустые и пользовательские типы макетов.
        // Но макеты с пользовательскими типами имеют разные названия слайдов,
        // такие как "Название", "Название и содержание" и т. д. И возможно использовать эти
        // названия для выбора макета слайда.
        // Также возможно использовать набор типов фигур заполнителей. Например,
        // Слайд с заголовком должен иметь только тип заполнителя заголовка и т. д.
        foreach (ILayoutSlide titleAndObjectLayoutSlide in layoutSlides)
        {
            if (titleAndObjectLayoutSlide.Name == "Title and Object")
            {
                layoutSlide = titleAndObjectLayoutSlide;
                break;
            }
        }
        if (layoutSlide == null)
        {
            foreach (ILayoutSlide titleLayoutSlide in layoutSlides)
            {
                if (titleLayoutSlide.Name == "Title")
                {
                    layoutSlide = titleLayoutSlide;
                    break;
                }
            }
            if (layoutSlide == null)
            {
                layoutSlide = layoutSlides.GetByType(SlideLayoutType.Blank);
                if (layoutSlide == null)
                {
                    layoutSlide = layoutSlides.Add(SlideLayoutType.TitleAndObject, "Title and Object");
                }
            }
        }
    }
    // Добавление пустого слайда с добавленным макетом
    presentation.Slides.InsertEmptySlide(0, layoutSlide);
    // Сохранение презентации
    presentation.Save("AddLayoutSlides_out.pptx", SaveFormat.Pptx);
}

См. Также