.NET içinde Listelerle Nasıl Çalışılır

.NET içinde Listelerle Nasıl Çalışılır

Listelerle .NET Nasıl Çalışılır

Word belgesindeki numaralı ve madde işaretli listeler, üç iş birliği yapan nesneden oluşturulur: List, yeniden kullanılabilir numaralandırma tanımı; ListFormat, belirli bir paragrafın hangi listeye ve seviyeye ait olduğunu belirten; ve ListLevel, bir seviyenin gerçek biçimlendirmesini tutan. Bu kılavuz, bir listeyi paragraf uygulamayı, ayrı listelerin aynı sayacı paylaşmasını önlemeyi, paragrafları seviyeler arasında taşımayı ve Aspose.Words FOSS for .NET ile numaralandırma ve madde işareti biçimlendirmesini özelleştirmeyi gösterir.


Adım Adım Kılavuz

Adım 1: Bir Paragrafa Liste Uygula

Paragraf biçimlendirmesinde ListFormat.ApplyBulletDefault() veya ApplyNumberDefault() kullanarak Word’ün varsayılan madde işareti ya da numaralı listesini tek bir çağrıyla uygula — bu, standart bir listeyi uygulamanın en hızlı yoludur. Varsayılan yerine belirli bir önceden tanımlı biçim için, Document.Lists (bir ListCollection) .Add(listTemplate) komutunu ListTemplate değeriyle, örneğin BulletDisk, BulletSquare, NumberArabicDot veya NumberUppercaseRomanDot gibi, Word’ün yerleşik biçimlerinden bir List oluşturmak için ya da tek seviyeli bir varyant için AddSingleLevelList(listTemplate) kullan. Bir paragraf liste biçimlendirmesine sahip olduğunda, ListFormat.IsListItem true rapor eder ve ListFormat.List/ListLevelNumber hangi listeyi ve seviyeyi kullandığını belirler.


Adım 2: Yeni Paragraf Grubuna Bağımsız Numaralandırma Ata

Paragrafların ListFormat.List‘ı aynı ortak List nesnesine işaret ettiğinde aynı sayacı sürdürür. Yeni bir paragraf grubu bağımsız olarak 1’den yeniden numaralandırma gerektirdiğinde, mevcut bir liste tanımını kopyalamak için ListCollection.AddCopy(srcList)‘yi çağırın ve ardından kopyayı yeni paragraflara uygulayın, orijinali yeniden kullanmak yerine. ListCollection.GetListByListId(listId), bir ListId ile belirli bir listeyi almanızı sağlar, böylece birini yaratmak yerine aramanız gerekir; ve Count, belgenin şu anda kaç listeye sahip olduğunu rapor eder.


Adım 3: Bir Paragrafı Liste Düzeyleri Arasında Taşı

ListFormat.ListIndent()‘ı kullanarak bir paragrafı listesinin bir seviye daha derinine taşıyın ve ListOutdent()‘i kullanarak bir seviye daha sığa indirin — bu, Word’ün bir liste paragrafının başında Tab ve Shift+Tab için yaptığı aynı işlemlerdir. ListLevelNumber‘yi doğrudan ayarlamaktan ziyade bu yöntemleri tercih edin, çünkü paragrafın liste biçimlendirmesini içsel olarak tutarlı tutarlar. Paragraftan liste biçimlendirmesini tamamen kaldırmak için RemoveNumbers()‘ü çağırın.


Adım 4: Bir Liste Düzeyinin Numaralandırma Biçimini Özelleştir

Belirli bir düzeye List.ListLevels (bir ListLevelCollection) aracılığıyla ulaşın, ardından ListLevel.NumberStyle‘yi (örneğin Arabic, UppercaseRoman, LowercaseLetter veya Bullet gibi bir NumberStyle değeri) ve NumberFormat‘i — sayıyı nokta ya da parantez gibi literal metinle birleştiren biçim dizesi — birlikte ayarlayın; çünkü uyumsuz bir çift beklenmedik bir renderlama oluşturur. StartAt düzeyin başlangıç numarasını ayarlar ve RestartAfterLevel hangi üst düzeyin artışının bu düzeyin sayacını yeniden başlatacağını kontrol eder — varsayılan yeniden başlatma davranışına güvenmek yerine iç içe listelerde bunu açıkça ayarlayın. Alignment (Left, Center, Right) ve TrailingCharacter (Tab, Space, Nothing) etiket konumunu ve etiket ile paragraf metni arasındaki ayırıcıyı kontrol eder, ayrıca TabPosition, NumberPosition ve TextPosition kesin yerleşim için bulunur. IsLegal, NumberStyle‘e bakılmaksızın yasal tarzda numaralandırmayı (her zaman Arapça) zorlar.


Adım 5: Bir Liste Düzeyine Resim Madde İşareti Ekle

Hedef düzeyde bir resim madde işareti tanımı oluşturmak için ListLevel.CreatePictureBullet()‘ı çağırın, ardından aynı düzeydeki mevcut metin madde işareti biçimlendirmesini kaldırmadan önce madde işaretinin ImageData‘ini sağlayın. Resim madde işaretini kaldırıp metin tabanlı madde işareti biçimlendirmesine dönmek için DeletePictureBullet()‘yi çağırın.


Adım 6: Bir Liste Öğesinin Oluşturulmuş Etiketini İncele

ListLabel, bir liste öğesi örneği için aslında oluşturulan etiketi, öğenin paragraf biçimlendirmesinden ulaşarak tanımlar. LabelString, Word’ün gösterdiği gerçek metindir — örneğin “3.” ya da “•” — LabelValue, temel sayısal değerdir ve Font, paragraf metni biçimlendirmesinden bağımsız olarak etiketin kendi biçimlendirmesidir. Listenin tamamını oluşturmadan, dizide rastgele bir konumdaki etiket değerini hesaplamak için ListLevel.GetEffectiveValue(index, numberStyle, customNumberStyleFormat) çağrısını yapın.


Yaygın Sorunlar ve Çözümler

Bağımsız olarak numaralandırılması gereken iki paragraf aynı sırayı sürdürür. Her iki paragrafın ListFormat.List aynı paylaşılan List nesne. İkinci gruba kendi listesini şu şekilde ver ListCollection.AddCopy(srcList) aynı şeyi yeniden kullanmak yerine List.

Özel bir numaralandırma biçim dizesi beklenildiği gibi görüntülenmiyor. ListLevel.NumberFormat seviyenin beklenen desenine uymuyor NumberStyle. Doğrulayın NumberFormat and NumberStyle düzenlenen seviye için tutarlı bir şekilde ayarlanır.

Seviyeler programatik olarak değiştirildikten sonra liste girintisi yanlış görünüyor. ListLevelNumber ilgili konum özellikleri güncellenmeden doğrudan ayarlandı. Kullan ListFormat.ListIndent()/ListOutdent() ayarlamak yerine ListLevelNumber doğrudan.

Bir seviye üzerinde resimli madde işareti görünmüyor. O seviye için resimli madde işareti oluşturulmadı ya da varsayılan metin-madde işareti biçimlendirmesi hâlâ etkin. Çağır ListLevel.CreatePictureBullet() ve metin madde işareti biçimlendirmesini kaldırmadan önce görüntü verisini sağlayın.

Stil-bağlantılı bir liste, doğrudan biçimlendirme değişikliklerine yanıt vermez. Check List.IsListStyleReference — stil-referanslı bir listenin biçimlendirmesi, bağlı olanı tarafından kontrol edilir Style (aracılığıyla List.Style), doğrudan listeyi düzenleyerek değil. Şununla karşılaştırın IsListStyleDefinition kendi biçimlendirmesini tanımlayan bir listeyi ayırt etmek için.


Sıkça Sorulan Sorular

List ile ListFormat arasındaki fark nedir?

List, paragraflar arasında paylaşılan yeniden kullanılabilir numaralandırma veya madde işareti tanımıdır. ListFormat ise paragraf başına özeldir — belirli bir paragrafın hangi List kullandığını ve hangi seviyede olduğunu, ListFormat.List ve ListLevelNumber aracılığıyla gösterir.

Bir paragrafın zaten bir listenin parçası olup olmadığını nasıl kontrol ederim?

Paragrafın biçimlendirmesi hakkında ListFormat.IsListItem‘ı okuyun. true ise, ListFormat.List ve ListLevelNumber hangi listeye ve seviyeye ait olduğunu belirler.

Yeni bir listenin, mevcut bir listeden bağımsız olarak 1’den numaralandırmasını nasıl başlatabilirim?

ListCollection.AddCopy(srcList) kullanarak liste tanımının bağımsız bir kopyasını oluşturun, ardından bu kopyayı yeni paragraflara uygulayın; orijinal List‘ı yeniden kullanmak yerine, çünkü bu aynı sayacı devam ettirir.

Sıfırdan madde işaretli veya numaralı bir listeyi nasıl oluşturabilirim?

Word’ün varsayılan biçimlendirmesi için ListFormat.ApplyBulletDefault() veya ApplyNumberDefault() kullanın, ya da önceden tanımlı bir biçimden başlamak ve ortaya çıkan List.ListLevels‘ı özelleştirmek için ListCollection.Add(listTemplate) ile bir ListTemplate değeri kullanın.

“1.” yerine “1)” gibi bir sayı biçimi nasıl elde ederim?

İlgili seviyede ListLevel.NumberFormat‘ı istenen biçim dizesine, sayı stilinin kendisi için NumberStyle ile birlikte ayarlayın.


Ayrıca Bakınız

 Türkçe