Управление фонами презентаций в .NET
Обзор
Сплошные цвета, градиенты и изображения часто используются для фона слайдов. Вы можете установить фон для обычного слайда (одного слайда) или главного слайда (применяется к нескольким слайдам сразу).

Установить сплошной цвет фона для обычного слайда
Aspose.Slides позволяет установить сплошной цвет в качестве фона для конкретного слайда в презентации — даже если презентация использует главный слайд. Изменение применяется только к выбранному слайду.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType слайда в
OwnBackground. - Установите FillType фона слайда в
Solid. - Используйте свойство SolidFillColor класса FillFormat для указания сплошного цвета фона.
- Сохраните изменённую презентацию.
Следующий пример на C# показывает, как установить синий сплошной цвет в качестве фона обычного слайда:
// Создать экземпляр класса Presentation.
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// Установить цвет фона слайда в синий.
slide.Background.Type = BackgroundType.OwnBackground;
slide.Background.FillFormat.FillType = FillType.Solid;
slide.Background.FillFormat.SolidFillColor.Color = Color.Blue;
// Сохранить презентацию на диск.
presentation.Save("SolidColorBackground.pptx", SaveFormat.Pptx);
}
Установить сплошной цвет фона для главного слайда
Aspose.Slides позволяет установить сплошной цвет в качестве фона для главного слайда в презентации. Главный слайд служит шаблоном, управляющим форматированием всех слайдов, поэтому при выборе сплошного цвета фона главного слайда он применяется ко всем слайдам.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType главного слайда (через
masters) вOwnBackground. - Установите FillType фона главного слайда в
Solid. - Используйте SolidFillColor для указания сплошного цвета фона.
- Сохраните изменённую презентацию.
Следующий пример на C# показывает, как установить сплошной цвет (лесной зелёный) в качестве фона главного слайда:
// Создать экземпляр класса Presentation.
using (Presentation presentation = new Presentation())
{
IMasterSlide masterSlide = presentation.Masters[0];
// Установить цвет фона мастер‑слайда в лесный зеленый.
masterSlide.Background.Type = BackgroundType.OwnBackground;
masterSlide.Background.FillFormat.FillType = FillType.Solid;
masterSlide.Background.FillFormat.SolidFillColor.Color = Color.ForestGreen;
// Сохранить презентацию на диск.
presentation.Save("MasterSlideBackground.pptx", SaveFormat.Pptx);
}
Установить градиентный фон для слайда
Градиент - графический эффект, создаваемый постепенным изменением цвета. Когда используется в качестве фона слайда, градиенты могут сделать презентацию более художественной и профессиональной. Aspose.Slides позволяет установить градиентный цвет в качестве фона для слайдов.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType слайда в
OwnBackground. - Установите FillType фона слайда в
Gradient. - Используйте свойство GradientFormat класса FillFormat для настройки желаемых параметров градиента.
- Сохраните изменённую презентацию.
Следующий пример на C# показывает, как установить градиентный цвет в качестве фона слайда:
// Создать экземпляр класса Presentation.
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// Применить градиентный эффект к фону.
slide.Background.Type = BackgroundType.OwnBackground;
slide.Background.FillFormat.FillType = FillType.Gradient;
slide.Background.FillFormat.GradientFormat.TileFlip = TileFlip.FlipBoth;
// Сохранить презентацию на диск.
presentation.Save("GradientBackground.pptx", SaveFormat.Pptx);
}
Установить изображение в качестве фона слайда
Помимо сплошных и градиентных заливок, Aspose.Slides позволяет использовать изображения в качестве фона слайдов.
- Создайте экземпляр класса Presentation.
- Установите свойство BackgroundType слайда в
OwnBackground. - Установите FillType фона слайда в
Picture. - Загрузите изображение, которое вы хотите использовать в качестве фона слайда.
- Добавьте изображение в коллекцию изображений презентации.
- Используйте свойство PictureFillFormat класса FillFormat для назначения изображения в качестве фона.
- Сохраните изменённую презентацию.
Следующий пример на C# показывает, как установить изображение в качестве фона слайда:
// Создать экземпляр класса Presentation.
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// Установить свойства фонового изображения.
slide.Background.Type = BackgroundType.OwnBackground;
slide.Background.FillFormat.FillType = FillType.Picture;
slide.Background.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
// Загрузить изображение.
IImage image = Images.FromFile("Tulips.jpg");
// Добавить изображение в коллекцию изображений презентации.
IPPImage ppImage = presentation.Images.AddImage(image);
image.Dispose();
slide.Background.FillFormat.PictureFillFormat.Picture.Image = ppImage;
// Сохранить презентацию на диск.
presentation.Save("ImageAsBackground.pptx", SaveFormat.Pptx);
}
Следующий фрагмент кода показывает, как установить тип заливки фона в виде мозаичного изображения и изменить свойства чередования:
using (Presentation presentation = new Presentation())
{
ISlide firstSlide = presentation.Slides[0];
IBackground background = firstSlide.Background;
background.Type = BackgroundType.OwnBackground;
background.FillFormat.FillType = FillType.Picture;
IPPImage ppImage;
using (IImage newImage = Aspose.Slides.Images.FromFile("image.png"))
ppImage = presentation.Images.AddImage(newImage);
// Установить изображение, используемое для заливки фона.
IPictureFillFormat backPictureFillFormat = background.FillFormat.PictureFillFormat;
backPictureFillFormat.Picture.Image = ppImage;
// Установить режим заливки изображения в режим Tile и настроить свойства тайла.
backPictureFillFormat.PictureFillMode = PictureFillMode.Tile;
backPictureFillFormat.TileOffsetX = 15f;
backPictureFillFormat.TileOffsetY = 15f;
backPictureFillFormat.TileScaleX = 46f;
backPictureFillFormat.TileScaleY = 87f;
backPictureFillFormat.TileAlignment = RectangleAlignment.Center;
backPictureFillFormat.TileFlip = TileFlip.FlipY;
presentation.Save("TileBackground.pptx", SaveFormat.Pptx);
}
Изменить прозрачность фонового изображения
Возможно, вам понадобится отрегулировать прозрачность фонового изображения слайда, чтобы выделить содержимое слайда. Следующий код на C# показывает, как изменить прозрачность фонового изображения слайда:
var transparencyValue = 30; // Например.
// Get the collection of picture transform operations.
var imageTransform = slide.Background.FillFormat.PictureFillFormat.Picture.ImageTransform;
// Find an existing fixed-percentage transparency effect.
var transparencyOperation = null as IAlphaModulateFixed;
foreach (var operation in imageTransform)
{
if (operation is IAlphaModulateFixed alphaModulateFixed)
{
transparencyOperation = alphaModulateFixed;
break;
}
}
// Set the new transparency value.
if (transparencyOperation == null)
{
imageTransform.AddAlphaModulateFixedEffect(100 - transparencyValue);
}
else
{
transparencyOperation.Amount = (100 - transparencyValue);
}
Получить значение фона слайда
Aspose.Slides предоставляет интерфейс IBackgroundEffectiveData для получения эффективных значений фона слайда. Этот интерфейс раскрывает эффективные FillFormat и EffectFormat.
Используя свойство background класса BaseSlide, вы можете получить эффективный фон слайда.
Следующий пример на C# показывает, как получить эффективное значение фона слайда:
// Создать экземпляр класса Presentation.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
ISlide slide = presentation.Slides[0];
// Получить эффективный фон, учитывающий мастер‑слайд, макет и тему.
IBackgroundEffectiveData effBackground = slide.Background.GetEffective();
if (effBackground.FillFormat.FillType == FillType.Solid)
Console.WriteLine("Fill color: " + effBackground.FillFormat.SolidFillColor);
else
Console.WriteLine("Fill type: " + effBackground.FillFormat.FillType);
}
Вопросы и ответы
Могу ли я сбросить пользовательский фон и восстановить фон темы/макета?
Да. Удалите пользовательскую заливку слайда, и фон будет вновь наследоваться от соответствующего слайда layout/master (т.е. от theme background).
Что происходит с фоном, если я позже изменю тему презентации?
Если у слайда есть собственная заливка, она останется без изменений. Если фон наследуется от layout/master, он будет обновлен в соответствии с new theme.