.NET'te Sunum Slide Master'larını Yönet
Genel Bakış
Bir slide master, bir grup slayt için ortak tasarım ayarlarını tanımlar. Ortak şekiller, logolar, arka planlar, metin stilleri, tema ayarları ve altbilgi ayarları içerebilir. PowerPoint’te, slide master’ı düzenlemek, aynı biçimlendirmeyi her slaytta tekrarlamadan bir sunumu tutarlı tutmanın yaygın yoludur.
Aspose.Slides for .NET aynı modeli destekler. Bir sunum bir veya daha fazla master slayt içerebilir ve her master slayt birkaç layout slayt barındırabilir. Normal slaytlar doğrudan bir master slayta referans vermez. Bunun yerine, normal bir slayt bir layout slayt kullanır ve bu layout slayt bir master slayta aittir.
Hiyerarşi şudur:
- Slide master – ortak tasarım ve temayı tanımlar.
- Layout slide – yer tutucuların ve layout‑seviyesi biçimlendirmenin belirli bir düzenini tanımlar.
- Normal slide – gerçek sunum içeriğini içerir ve bir layout slayt kullanır.

Aspose.Slides’te bir slide master, IMasterSlide arayüzüyle temsil edilir. Bir sunumdaki tüm master slaytlar, Presentation.Masters koleksiyonu aracılığıyla erişilebilir ve bu koleksiyon IMasterSlideCollection arayüzünü uygular.
Kalıtım
Aynı özellik birden fazla seviyede tanımlandığında, daha spesifik seviye kazanır. Örneğin, bir master slayt ve bir layout slayt aynı arka planı tanımlıyorsa, o layout’a dayalı slaytlar layout arka planını kullanır. Layout slaytları hakkında daha fazla bilgi için Apply or Change Slide Layouts bölümüne bakın.Slayt Ustalarına Erişim
PowerPoint’te View > Slide Master menüsünden Slide Master görünümünü açabilirsiniz.

Aspose.Slides’te master slaytlara erişmek için Masters koleksiyonunu kullanın:
using Aspose.Slides;
using var presentation = new Presentation("presentation.pptx");
var firstMasterSlide = presentation.Masters[0];
var masterSlideCount = presentation.Masters.Count;
var firstMasterLayoutSlideCount = firstMasterSlide.LayoutSlides.Count;
Console.WriteLine("Master slides: " + masterSlideCount);
Console.WriteLine("Layouts in the first master: " + firstMasterLayoutSlideCount);
Ayrıca bir normal slaytın kullandığı master slaytı, onun layout’u üzerinden alabilirsiniz:
using Aspose.Slides;
using var presentation = new Presentation("presentation.pptx");
var slide = presentation.Slides[0];
var layoutSlide = slide.LayoutSlide;
var masterSlide = layoutSlide.MasterSlide;
var masterSlideName = masterSlide.Name;
Console.WriteLine(masterSlideName);
Bir Slayt Ustası Neler İçerir
Bir master slayt, slayt benzeri bir nesnedir. IBaseSlide arayüzünü uyguladığı için, normal ve layout slaytlarda kullanılan birçok aynı slayt özelliğine sahiptir. Master‑özel üyeler IMasterSlide API sayfasında listelenir.
Sık kullanılan master slayt üyeleri şunlardır:
| Üye | Amaç |
|---|---|
Background |
Master‑seviyesinde slayt arka planını ayarlar. |
Shapes |
Master üzerine yerleştirilen logolar, resim çerçeveleri ve ortak metin gibi şekilleri depolar. |
LayoutSlides |
Master’a ait layout slaytları depolar. |
ThemeManager |
Master tema API’lerine erişim sağlar. |
HeaderFooterManager |
Master ve onun alt layoutları için başlık, altbilgi, tarih ve slayt numaralarını kontrol eder. |
GetDependingSlides |
Layoutları aracılığıyla master’a bağlı normal slaytları döndürür. |
Bir Slayt Ustasına Resim Ekleme
Bir master slayta resim eklediğinizde, o master’dan layout kullanan slaytlarda görüntülenir. Logo, filigran, dekoratif şerit ve diğer tekrarlayan görsel öğeler için kullanışlıdır.
Aşağıdaki örnek, ilk master slayta bir logo ekler:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
var logoBytes = File.ReadAllBytes("logo.png");
var logoImage = presentation.Images.AddImage(logoBytes);
masterSlide.Shapes.AddPictureFrame(
ShapeType.Rectangle,
x: 20,
y: 20,
width: 80,
height: 80,
image: logoImage);
presentation.Save("presentation-with-logo.pptx", SaveFormat.Pptx);
Resim çerçeveleri hakkında daha fazla bilgi için Picture Frame sayfasına bakın.
Master Grafiklerinin Görünürlüğünü Kontrol Etme
[Müşteriler] inherited master graphics, such as logos or decorative shapes, can be hidden without deleting them from the master using IBaseSlide.ShowMasterShapes. Set Slide.ShowMasterShapes to false on the slide that should omit those graphics and keep it true on slides that should display them.
Aşağıdaki bağımsız örnek, bir master’da mavi bir dekoratif şerit oluşturur ve aynı boş layout‑u kullanan iki slaytta farklı görünürlük ayarları uygular. İlk slaytta şerit görünür, ikincisinde gizlenir. Giriş sunumu veya resim gerektirmez.
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation();
var masterSlide = presentation.Masters[0];
var layoutSlide = masterSlide.LayoutSlides.GetByType(SlideLayoutType.Blank);
layoutSlide.ShowMasterShapes = true;
var slideHeight = presentation.SlideSize.Size.Height;
var band = masterSlide.Shapes.AddAutoShape(ShapeType.Rectangle, 0, 0, 60, slideHeight);
band.FillFormat.FillType = FillType.Solid;
band.FillFormat.SolidFillColor.Color = Color.SteelBlue;
band.LineFormat.FillFormat.FillType = FillType.NoFill;
var visibleSlide = presentation.Slides[0];
visibleSlide.LayoutSlide = layoutSlide;
visibleSlide.Shapes.Clear();
var hiddenSlide = presentation.Slides.AddEmptySlide(layoutSlide);
visibleSlide.ShowMasterShapes = true;
hiddenSlide.ShowMasterShapes = false;
presentation.Save("master-graphics.pptx", SaveFormat.Pptx);
Örnek, yeni bir sunumla gelen Blank layout‑u kullanır ve başlangıç slaytının kendi yer tutucularını kaldırır.
Ayarın Kapsamını Seçin
Normal bir slayt, ISlide.LayoutSlide ve ILayoutSlide.MasterSlide aracılığıyla master’ına erişir. Özelliği tek bir slayt üzerinde ayarlamak sadece o slaytı etkiler. LayoutSlide.ShowMasterShapes false olarak ayarlandığında, ortak layout’u kullanan tüm slaytlarda master grafikleri gizlenir; kendi ayarı true olsa bile. Tek bir slaytta grafikleri gizlemek için slayt özelliğini değiştirin ve ortak layout‑u değiştirmeyin.
Bu ayar, master slaytın kendisinde görünürlük kontrolü olarak desteklenmez. Master üzerinde her zaman false döner ve true atanması NotSupportedException oluşturur. Bunu normal bir slayt ya da layout üzerinde uygulayın.
Grafikleri Arka Plandan Ayırma
| İşlem | Etkisi |
|---|---|
| Master grafiklerini gizle | Master’dan kalıtılan şekilleri silmeden veya slaytın kendi şekillerini değiştirmeden görünürlüğünü kontrol eder. |
| Slayt arka plan dolgusunu değiştir | Arka plan rengini, degradeyi veya resmi değiştirir. Master grafikleri ayrı şekiller olduğundan, bu arka planın üstünde görünmeye devam edebilir. Presentation Background bölümüne bakın. |
| Master’dan bir şekli sil | Paylaşılan kaynak şekli kaldırır; bu master’ı kullanan hiçbir slayt artık o şekle erişemez. |
Yer Tutucularla Çalışma
Yer tutucular genellikle layout slaytlarda tanımlanır. Master slayt, bu layout’ların miras aldığı ortak stil ve temayı sağlar; her layout ise hangi yer tutucuların mevcut olduğunu ve nerelerde konumlandırılacağını belirler.
PowerPoint’te yer tutucu komutları Slide Master görünümünde bulunur.

Aspose.Slides ile yeni yer tutucular eklemek için master’a ait layout slaytıyla çalışın:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
var blankLayoutSlide =
masterSlide.LayoutSlides.GetByType(SlideLayoutType.Blank) ??
masterSlide.LayoutSlides.Add(SlideLayoutType.Blank, "Blank");
blankLayoutSlide.PlaceholderManager.AddTextPlaceholder(
x: 60,
y: 120,
width: 600,
height: 80);
presentation.Slides.AddEmptySlide(blankLayoutSlide);
presentation.Save("presentation-with-placeholder.pptx", SaveFormat.Pptx);
Ayrıca master slaytta zaten var olan yer tutucu şekillerini biçimlendirebilirsiniz. Aşağıdaki örnek, başlık yer tutucusunu bulur ve doğrusal bir degrade doldurması uygular:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
var titlePlaceholder = FindPlaceholder(masterSlide, PlaceholderType.Title);
if (titlePlaceholder != null)
{
var redGradientColor = Color.FromArgb(255, 0, 0);
var purpleGradientColor = Color.FromArgb(128, 0, 128);
titlePlaceholder.FillFormat.FillType = FillType.Gradient;
titlePlaceholder.FillFormat.GradientFormat.GradientShape = GradientShape.Linear;
titlePlaceholder.FillFormat.GradientFormat.GradientStops.Add(0, redGradientColor);
titlePlaceholder.FillFormat.GradientFormat.GradientStops.Add(255, purpleGradientColor);
}
presentation.Save("presentation-title-style.pptx", SaveFormat.Pptx);
static IAutoShape? FindPlaceholder(IMasterSlide masterSlide, PlaceholderType placeholderType)
{
foreach (var shape in masterSlide.Shapes)
{
if (shape is IAutoShape { Placeholder: not null } autoShape &&
autoShape.Placeholder.Type == placeholderType)
{
return autoShape;
}
}
return null;
}

Daha fazla yer tutucu ve metin biçimlendirme seçeneği için Set Prompt Text in Placeholder ve Text Formatting bölümlerine bakın.
Bir Slayt Ustasının Arka Planını Değiştirme
Master arka planı, üzerine yazılan layout ve slaytlar tarafından geçersiz kılınmadıkça miras alınır. Aşağıdaki örnek, ilk master slayt için katı bir arka plan rengi ayarlar:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
var masterSlide = presentation.Masters[0];
masterSlide.Background.Type = BackgroundType.OwnBackground;
masterSlide.Background.FillFormat.FillType = FillType.Solid;
masterSlide.Background.FillFormat.SolidFillColor.Color = Color.ForestGreen;
presentation.Save("presentation-master-background.pptx", SaveFormat.Pptx);
İlgili konular için Presentation Background ve Presentation Theme bölümlerine bakın.
Bir Slaytı Başka Bir Sunuma Kopyalama
IMasterSlideCollection.AddClone kullanarak bir master slaytı başka bir sunuma kopyalayabilirsiniz. Kopyalanan master, hedef sunumdaki layout ve slaytlar tarafından kullanılabilir.
using Aspose.Slides;
using Aspose.Slides.Export;
using var sourcePresentation = new Presentation("source.pptx");
using var destinationPresentation = new Presentation("destination.pptx");
var sourceMasterSlide = sourcePresentation.Masters[0];
var clonedMasterSlide = destinationPresentation.Masters.AddClone(sourceMasterSlide);
destinationPresentation.Save("destination-with-master.pptx", SaveFormat.Pptx);
Normal slaytları onların master’larıyla birlikte kopyalamanız gerekiyorsa, Clone Slides bölümüne bakın.
Birden Çok Slayt Ustası Ekleme
Bir sunum birden çok master slayt içerebilir. Bu, farklı bölümlerin farklı markalama, sayfa yapısı veya tema ayarları gerektirdiği durumlarda faydalıdır.

Aşağıdaki örnek, varsayılan master’ı klonlar, klona farklı bir arka plan verir, bu klon master altında bir layout oluşturur ve bu layout’a dayalı yeni bir slayt ekler:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
var defaultMasterSlide = presentation.Masters[0];
var sectionMasterSlide = presentation.Masters.AddClone(defaultMasterSlide);
sectionMasterSlide.Background.Type = BackgroundType.OwnBackground;
sectionMasterSlide.Background.FillFormat.FillType = FillType.Solid;
sectionMasterSlide.Background.FillFormat.SolidFillColor.Color = Color.LightSteelBlue;
var sourceBlankLayout =
defaultMasterSlide.LayoutSlides.GetByType(SlideLayoutType.Blank) ??
defaultMasterSlide.LayoutSlides[0];
var sectionBlankLayout = sectionMasterSlide.LayoutSlides.AddClone(sourceBlankLayout);
presentation.Slides.AddEmptySlide(sectionBlankLayout);
presentation.Save("presentation-with-multiple-masters.pptx", SaveFormat.Pptx);
Slayt Ustalarını Karşılaştırma
Master slaytlar, IBaseSlide üzerinden miras alınan Equals metodu ile karşılaştırılabilir. Karşılaştırma, şekiller, metin, biçimlendirme, animasyonlar ve diğer slayt ayarları gibi yapı ve statik içeriği kontrol eder. Slayt kimlikleri gibi benzersiz tanımlayıcılar ya da mevcut tarih gibi dinamik yer tutucu değerleri karşılaştırılmaz.
using Aspose.Slides;
using var firstPresentation = new Presentation("first.pptx");
using var secondPresentation = new Presentation("second.pptx");
var firstPresentationMasterCount = firstPresentation.Masters.Count;
var secondPresentationMasterCount = secondPresentation.Masters.Count;
for (var firstMasterIndex = 0; firstMasterIndex < firstPresentationMasterCount; firstMasterIndex++)
{
for (var secondMasterIndex = 0; secondMasterIndex < secondPresentationMasterCount; secondMasterIndex++)
{
var firstMasterSlide = firstPresentation.Masters[firstMasterIndex];
var secondMasterSlide = secondPresentation.Masters[secondMasterIndex];
var areMasterSlidesEqual = firstMasterSlide.Equals(secondMasterSlide);
if (areMasterSlidesEqual)
{
Console.WriteLine(
"first.pptx master #{0} equals second.pptx master #{1}",
firstMasterIndex,
secondMasterIndex);
}
}
}
Daha fazla bilgi için Compare Presentation Slides bölümüne bakın.
Slide Master Görünümünü Varsayılan Görünüm Olarak Ayarlama
ViewProperties üzerindeki LastView özelliği, PowerPoint’in ilk açtığı görünümü kontrol eder. Aşağıdaki örnek, sunumu Slide Master görünümünde açar:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
presentation.ViewProperties.LastView = ViewType.SlideMasterView;
presentation.Save("presentation-master-view.pptx", SaveFormat.Pptx);
Daha fazla görünüm ayarı için Save Presentation bölümüne bakın.
Kullanılmayan Master Slaytları Kaldırma
Bazen sunumlar, hiçbir normal slayt tarafından kullanılmayan master slaytlar içerir. Kullanılmayan master’ları kaldırmak dosya boyutunu azaltabilir ve şablon bakımını basitleştirir.
Masters koleksiyonundan kullanılmayan master’ları kaldırmak için MasterSlideCollection.RemoveUnused yöntemini kullanın:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
presentation.Masters.RemoveUnused(ignorePreserveField: true);
presentation.Save("presentation-clean.pptx", SaveFormat.Pptx);
Ayrıca düşük‑kodlu Compress.RemoveUnusedMasterSlides yöntemini de kullanabilirsiniz:
using Aspose.Slides;
using Aspose.Slides.Export;
using var presentation = new Presentation("presentation.pptx");
Aspose.Slides.LowCode.Compress.RemoveUnusedMasterSlides(presentation);
presentation.Save("presentation-clean.pptx", SaveFormat.Pptx);
SSS
Bir slayt ustası ile bir düzen slaytı arasındaki fark nedir?
Bir slayt ustası tema, arka plan, ortak şekiller ve metin stilleri gibi ortak tasarım ayarlarını tanımlar. Bir düzen slaytı bir master slaytına aittir ve yer tutucuların belirli bir düzenini tanımlar. Normal bir slayt bir düzen slaytı kullanır; böylece hem layout hem de master’dan miras alır.
Bir sunum birden fazla slayt ustası içerebilir mi?
Evet. Bir sunum birden fazla slayt ustası barındırabilir. Farklı bölümler farklı görsel sistemler veya markalama gerektirdiğinde birden çok master kullanın.
Yer tutucuları bir master slayta mı yoksa bir layout slayta mı eklemeliyim?
Çoğu durumda yer tutucuları layout slaytlara ekleyin. Ortak görsel öğeler ve ortak biçimlendirmeyi master slayta, içerik yer tutucularını ise normal slaytların kullanacağı layout‑lara yerleştirin.
Kullanılan bir master slaytı silebilir miyim?
Hayır. Bağımlı slaytları olan bir master slaytı doğrudan kaldırmak güvenli değildir. Önce bu slaytları başka bir master altındaki layout’lara taşıyın veya yalnızca kullanılmayan master’ları temizleyen bir yöntem kullanın.