Stillerle Çalışma
Stillerle Çalışma
Bu kılavuz, paragraf, karakter, tablo ve liste stilleriyle nasıl çalışılacağını gösterir Aspose.Words FOSS için .NET — yerleşik ve özel stilleri arama ve uygulama, ayrıca tablo stillerinde bölge bazlı koşullu biçimlendirmeyi yapılandırma.
Bir Style nesnesi, tek bir yerleşik veya kullanıcı tanımlı stili temsil eder — bir paragraf veya çalışma o stile atandığında Word’ün uyguladığı, adlandırılmış paragraf, yazı tipi ve liste biçimlendirme koleksiyonu. Her belge, stillerini Document.Styles özelliği aracılığıyla ortaya çıkarır; bu özellik bir StyleCollection döndürür. Tablo stilleri, Style sınıfının bir alt sınıfı olan TableStyle tarafından temsil edilir; bu sınıf, tabloya özgü biçimlendirme ve ConditionalStyleCollection aracılığıyla bölgeye göre koşullu biçimlendirme ekler.
Stil Türleri ve Tanımlama
Her Style, StyleType türünde bir Type özelliğine sahiptir; bu özellik Paragraph, Character, Table veya List değerlerinden biridir — Word’ün desteklediği dört stil türüne karşılık gelir. Yerleşik stiller ayrıca yerel bağımsız bir StyleIdentifier enum değeri taşır (örneğin başlıklar, vurgulama ve köprü stillerine karşılık gelen değerler) böylece kod, belirli bir dildeki görüntüleme adına bağlı kalmadan yerleşik bir stili arayabilir. Bir stilin insan tarafından okunabilir adı Style.Name aracılığıyla elde edilebilir ve Style.Aliases, Word’ün aynı stil için tanıdığı alternatif adları döndürür. Style.BuiltIn, stilin Word’ün kendisiyle birlikte gelip gelmediğini, yani belgede tanımlanıp tanımlanmadığını bildirir, ve Style.IsHeading stilin yerleşik başlık stillerinden biri olup olmadığını raporlar.
Stil Koleksiyonuna Erişim ve Yönetim
StyleCollection, bir belgeye eklenmiş tüm Style nesnelerinin — yerleşik ve özel — koleksiyonudur; bu koleksiyon Document.Styles aracılığıyla erişilir. Bir stili, görüntüleme adını kullanarak StyleCollection dizinleyicisi — styles[name] — ile alabilirsiniz veya aynı dizinleyiciyi kullanarak yerel bağımsız StyleIdentifier ile yerleşik bir stili alabilirsiniz — styles[sti] — bu, farklı dillerde oluşturulmuş belgelerde isim aramaya göre daha güvenilirdir. Yeni stiller StyleCollection.Add(type, name) ile oluşturulur, StyleType ve bir ad belirtilir, ve mevcut bir stil StyleCollection.AddCopy(style) ile koleksiyona kopyalanabilir. StyleCollection.Count, belgenin kaç stil içerdiğini rapor eder ve koleksiyon ayrıca DefaultFont ve DefaultParagraphFormat öğelerini sunar; bunlar, açık bir stil uygulanmadan önce yeni içeriğin miras alacağı belge genelindeki varsayılan biçimlendirmeyi tanımlar. StyleCollection.ClearQuickStyleGallery(), stilleri kendileri silinmeden Word UI’nın hızlı-stil galerisinden tüm stilleri kaldırır.
Paragraflara ve Çalıştırmalara Stilleri Uygulama
Stili taşıyabilen biçimlendirme nesneleri hem bir Style özelliğini (kendisi Style nesnesi) hem de bir StyleName özelliğini (adıyla bir stili çözen veya oluşturan bir kısayol) ortaya çıkar. ParagraphFormat.Style ve ParagraphFormat.StyleName bir paragraf stilini uygular, Font.Style ve Font.StyleName ise bir çalıştırmanın biçimlendirmesine karakter stilini uygular. Bir stilin kendi LinkedStyleName, BaseStyleName ve NextParagraphStyleName özellikleri, stilin diğer stillerle nasıl ilişkili olduğunu tanımlar: BaseStyleName stilin ayarlanmamış biçimlendirmeyi miras aldığı stilin adını verir, LinkedStyleName eşleşen bir paragraf/karakter stilinin adını verir (Word’ün Başlık 1 gibi yerleşik stiller ve bunların bağlı karakter stilinde yaptığı gibi), ve NextParagraphStyleName bu stili kullanan bir paragraftan sonra yazılan yeni bir paragrafa Word’ün atadığı stilin adını verir.
Tablo Stilleri ve Koşullu Biçimlendirme
TableStyle, Style‘i Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment gibi tablo düzeni özellikleri ve dolgu (LeftPadding, RightPadding, TopPadding, BottomPadding) ile genişletir, ayrıca RowStripe ve ColumnStripe eklenir; bunlar bir şerit deseninin kaç satır veya sütun üzerinde tekrar edeceğini kontrol eder. Tekdüze tablo biçimlendirmesinin ötesinde, TableStyle.ConditionalStyles bir ConditionalStyleCollection döndürür; bu ConditionalStyleCollection tablo bölgesi başına bir ConditionalStyle tutar — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding ve dört köşe hücresi (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Her ConditionalStyle, kendi Font, ParagraphFormat, Shading, Borders ve hücre dolgusuna sahiptir ve Type özelliği hangi ConditionalStyleType bölgesini temsil ettiğini bildirir. ConditionalStyle.ClearFormatting() ve ConditionalStyleCollection.ClearFormatting(), bir bölge için ya da tüm koşullu bölgeler kümesi için biçimlendirmeyi sıfırlar.
Stil Üst Verileri ve Davranış Bayrakları
Style üzerindeki çeşitli boolean ve sayısal özellikler, Word’ün bir stili kullanıcı arayüzünde nasıl ele aldığını (görünümünü) kontrol eder, render edilmesini değil: Locked, biçimlendirme koruması etkin olduğunda stilin değiştirilmesini engeller, IsQuickStyle, stilin hızlı-stil galerisinde görünüp görünmeyeceğini kontrol eder, AutomaticallyUpdate, stilin elle uygulanmış doğrudan biçimlendirmeden kendini yeniden tanımlamasını sağlar, SemiHidden ve UnhideWhenUsed, stilin listede ilk kullanım öncesi ve sonrasında görünürlüğünü kontrol eder, ve Priority, galeri içindeki sıralama düzenini etkiler. Bir stil ayrıca liste numaralandırması tanımladığında List ve ListFormat özelliklerini ortaya çıkarır, ve Style.Remove(), stili onun StyleCollection‘dan siler.
İpuçları ve En İyi Uygulamalar
- Yerleşik bir stil bulurken isimle aramaktan ziyade
StyleCollectionindeksleyicisiniStyleIdentifierdeğeriyle kullanmayı tercih edin — isimler yerelleştirilir, ancakStyleIdentifierdeğerleri yerelleştirilmez. BaseStyleName‘ı stil hiyerarşileri oluşturmak için ayarlayın (örneğin, tüm başlık stillerinin bir temel stilden font seçimlerini miras aldığı bir başlık stili kümesi) her stilde biçimlendirmeyi tekrarlamak yerine.- Stilleri belgeler arasında kopyalarken, her biçimlendirme özelliğini manuel olarak okuyup yeniden uygulamak yerine
StyleCollection.AddCopy(style)‘ı kullanın. - Kod içinde dönüşümlü satırları manuel olarak biçimlendirmek yerine, şeritli tablolar için
TableStyle.ConditionalStylesbölgelerini yapılandırın — herConditionalStylebölgesinin biçimlendirmesi, bireysel satırlara doğrudan biçimlendirme uygulamak yerineConditionalStyleType‘ye göre uygulanır. - Bir stili programlı olarak kaldırmadan veya yeniden adlandırmadan önce
Style.BuiltIn‘ı kontrol edin; yerleşik stiller genellikle belgenin başka yerlerinde adlarıyla referans verilir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
StyleCollection indeksleyici, bir ad araması için null döndürür | Stil adı bu belgede bulunmuyor ya da bir yerleşik stil henüz kullanılmadığı için Word onu oluşturmadı | Alternatif adlar için Style.Aliases kontrol edin, ya da yerleşik stiller için StyleIdentifier ile StyleCollection indeksleyicisini kullanın. |
StyleName ayarlamak beklenmedik şekilde yeni bir stil oluşturur. | StyleName, koleksiyonda zaten bulunmuyorsa isimli stili oluşturur. | Stilin mevcut olduğunu doğrulamak için önce StyleCollection indeksleyicisini kullanın, ya da Style nesnesini doğrudan Style özelliği üzerinden atayın. |
TableStyle uygulandıktan sonra tablo bantlaması görünmüyor. | Koşullu biçimlendirme bölgeleri (OddRowBanding, EvenRowBanding vb.) TableStyle.ConditionalStyles üzerinde hiç yapılandırılmamıştı. | ConditionalStyleCollection içindeki ilgili ConditionalStyle girişlerine biçimlendirme uygulayın. |
| Bir stil değişikliği, zaten o stili kullanan içeriği etkilemez. | Stil üzerine doğrudan (manuel) biçimlendirme uygulanmış ve önceliklidir | Etkilenen satır/paragraflardaki doğrudan biçimlendirmeyi temizleyin veya Style.AutomaticallyUpdate ayarlayın |
FAQ
Bir belgede bulunan tüm stillerin koleksiyonunu nasıl alabilirim?
Document.Styles‘ı okuyun; bu, o belgede bulunan tüm yerleşik ve kullanıcı tanımlı Style‘yi içeren bir StyleCollection döndürür.
Style ile StyleIdentifier arasındaki fark nedir?
Style biçimlendirmesiyle birlikte gerçek stil nesnesidir; StyleIdentifier belirli bir öğeyi bulmak için kullanılan, yerel bağımsız bir enum değeridir yerleşik belgenin diline bakılmaksızın stil, şu aracılığıyla StyleCollection indeksleyici.
Tablo stilleri paragraf ya da karakter stillerinden nasıl farklıdır?
TableStyle, Style‘in bir alt sınıfıdır ve tablo düzeni özelliklerini (Alignment, CellSpacing, padding) ve bölgeye özgü biçimlendirme için bir ConditionalStyles koleksiyonunu (örneğin şeritli satırlar, başlık satırları ve köşe hücreleri) ekler — bu biçimlendirme kavramları paragraf ya da karakter stillerine uygulanmaz.
Mevcut bir stili değiştirmek yerine tamamen yeni bir stil oluşturabilir miyim?
Evet — boş bir stil oluşturmak için istediğiniz StyleType ve yeni bir adla StyleCollection.Add(type, name)‘ı çağırın, ardından biçimlendirme özelliklerini (Font, ParagraphFormat ve paragraf/karakter stilleri için benzerlerini) ayarlayın.
Başka bir belgeden de dahil olmak üzere bir stili nasıl çoğaltabilirim?
StyleCollection.AddCopy(style)‘ı kullanın, hedef koleksiyona bir kopyasını eklemek için bir Style nesnesi (farklı bir Document‘nin StyleCollection‘undan gelebilen) geçirin.
API Reference Özet
| Sınıf/Yöntem | Açıklama |
|---|---|
Style | Yerleşik veya kullanıcı tanımlı tek bir paragraf, karakter, tablo veya liste stili |
StyleCollection | Bir belgede bulunan tüm stillerin koleksiyonu, Document.Styles aracılığıyla erişilir |
StyleCollection isimle indeksleyici | Bir stili görüntüleme adıyla ara, ör. styles["Heading 1"] |
StyleCollection tanımlayıcıyla indeksleyici | Yerel bağımsız tanımlayıcıyla yerleşik bir stili ara, ör. styles[StyleIdentifier.Heading1] |
StyleCollection.Add(type, name) | Verilen StyleType için yeni, boş bir stil oluşturun |
StyleCollection.AddCopy(style) | Mevcut bir stili bu koleksiyona kopyalayın |
StyleType | Paragraph, Character, Table ve List stillerini ayıran enum |
StyleIdentifier | Yerel ayar bağımsız bir yerleşik stil için tanımlayıcı |
TableStyle | Tablo biçimlendirme için bir Style alt sınıfı, bölgeye göre koşullu stil dahil |
ConditionalStyleCollection | Bir TableStyle üzerindeki bölge bazlı ConditionalStyle girişlerinin kümesi |
ConditionalStyle | Bir tablo bölgesi için biçimlendirme (yazı tipi, paragraf biçimi, gölgelendirme, kenarlıklar, doldurma) |
ConditionalStyleType | ConditionalStyle öğesinin uygulanacağı tablo bölgesini belirten enum |