Hogyan dolgozzunk listákkal a .NET

Hogyan dolgozzunk listákkal a .NET

Hogyan dolgozzünk listákkal a .NET-ban

A Word-dokumentumban a számozott és felsorolásos listák három együttműködő objektumból épülnek fel: List, az újrahasználható számozási definíció; ListFormat, amely megmondja egy adott bekezdésnek, hogy melyik listához és szinthez tartozik; és ListLevel, amely egy szint tényleges formázását tartalmazza. Ez az útmutató bemutatja, hogyan alkalmazzunk listát egy bekezdésre, hogyan tartsuk a különálló listákat a számláló megosztásától, hogyan mozgassunk bekezdéseket szintek között, és hogyan testreszabjuk a számozás és a jelölő formázását a Aspose.Words FOSS segítségével a .NET számára.


Lépésről-lépésre útmutató

1. lépés: Lista alkalmazása egy bekezdésre

Használd a ListFormat.ApplyBulletDefault() vagy a ApplyNumberDefault() beállítást egy bekezdés formázásán, hogy a Word alapértelmezett felsorolásos vagy számozott listáját egy hívásban alkalmazd — ez a leggyorsabb módja egy szabványos lista alkalmazásának. Alapértelmezés helyett egy konkrét előre definiált formátumhoz, hívd a Document.Lists (egy ListCollection) .Add(listTemplate) egy ListTemplate értékkel, például BulletDisk, BulletSquare, NumberArabicDot vagy NumberUppercaseRomanDot, hogy egy List-t hozz létre a Word beépített formátumai közül, vagy egy AddSingleLevelList(listTemplate) egy szintű változatot. Miután egy bekezdésnek listaformázása van, a ListFormat.IsListItem jelentése true, és a ListFormat.List/ListLevelNumber azonosítja, melyik listát és szintet használja.


2. lépés: Új bekezdéscsoportnak független számozás adása

Azok a bekezdések, amelyeknek a ListFormat.List ugyanarra a közös List objektumra mutat, ugyanazt a számlálót folytatják. Ha egy új bekezdéscsoportnak önállóan, 1-től újra kell számozódnia, hívd a ListCollection.AddCopy(srcList) függvényt egy meglévő lista-definíció megkettőzéséhez, majd alkalmazd a másolatot az új bekezdésekre az eredeti újbóli használata helyett. A ListCollection.GetListByListId(listId) egy konkrét listát kér le a ListId alapján, amikor inkább fel kell keresni, mint létrehozni, és a Count megadja, hogy a dokumentumnak jelenleg hány listája van.


3. lépés: Bekezdés áthelyezése lista szintek között

Használd a ListFormat.ListIndent() függvényt a bekezdés egy szinttel mélyebbre helyezéséhez a listában, és a ListOutdent()-t egy szinttel feljebb – ugyanazok a műveletek, amelyeket a Word a Tab és a Shift+Tab segítségével hajt végre egy lista bekezdés elején. Inkább ezeket a módszereket részesítsd előnyben a ListLevelNumber közvetlen beállításával szemben, mivel így a bekezdés listaformázása belsőleg konzisztens marad. Hívd a RemoveNumbers() függvényt a listaformázás teljes eltávolításához egy bekezdésről.


4. lépés: Lista szint számozási formátumának testreszabása

Érj el egy adott szintet a List.ListLevels (egy ListLevelCollection) segítségével, majd állítsd be a ListLevel.NumberStyle (egy NumberStyle érték, például Arabic, UppercaseRoman, LowercaseLetter vagy Bullet) és a NumberFormat értékét – a formátumkarakterlánc, amely a számot szöveges elemmel, például ponttal vagy zárójelezéssel egyesíti – együtt, mivel a nem egyező párosítás váratlan megjelenést eredményez. A StartAt beállítja a szint kezdő számát, a RestartAfterLevel pedig meghatározza, hogy melyik magasabb szint növelése indítja újra ennek a szintnek a számlálóját – ezt kifejezetten állítsd be a beágyazott listák esetén, az alapértelmezett újraindítási viselkedés helyett. A Alignment (Left, Center, Right) és a TrailingCharacter (Tab, Space, Nothing) szabályozzák a címke pozícióját és a címke és a bekezdés szövege közötti elválasztót, együtt a TabPosition, NumberPosition és TextPosition elemekkel a pontos elrendezésért. A IsLegal jogi stílusú számozást kényszerít (mindig arab), függetlenül a NumberStyle beállítástól.


5. lépés: Képes felsorolásjel hozzáadása lista szinthez

Hívd a ListLevel.CreatePictureBullet() függvényt a cél szinten egy képes felsorolásjel-definíció létrehozásához, majd add meg a felsorolásjel ImageData értékét, mielőtt eltávolítanád a ugyanazon szinten már meglévő szöveges felsorolásjel formázást. Hívd a DeletePictureBullet() függvényt a képes felsorolásjel eltávolításához és a szöveges alapú felsorolásjel formázás visszaállításához.


6. lépés: Listaelem megjelenített címkéjének ellenőrzése

ListLabel leírja a címkét, amely ténylegesen megjelenik egy listaelem példányánál, a listaelem bekezdésformázásából elérve. LabelString a szó szerint megjelenő szöveg, amit a Word mutat – például „3.” vagy „•”. LabelValue az alapul szolgáló numerikus érték, és Font a címke saját formázása, független a bekezdés szövegének formázásától. Egy címke értékének kiszámításához egy tetszőleges pozícióban a sorozatban a teljes lista megjelenítése nélkül, hívd meg a ListLevel.GetEffectiveValue(index, numberStyle, customNumberStyleFormat) függvényt.


Gyakori problémák és megoldások

Két bekezdés, amelynek függetlenül kell számozódnia, ugyanazt a sorozatot folytatja. Mindkét bekezdés’ ListFormat.List azonos megosztottra hivatkozik List objektum. Adj a második csoportnak saját listát a ListCollection.AddCopy(srcList) ahelyett, hogy újrahasználná ugyanazt List.

Az egyéni számozási formátum karakterlánc nem jelenik meg a várt módon. ListLevel.NumberFormat nem felel meg a szinthez várt mintának NumberStyle. Ellenőrizd NumberFormat and NumberStyle konzisztensen vannak beállítva a szerkesztett szinthez.

A lista behúzása helytelennek tűnik a szintek programozott módosítása után. ListLevelNumber közvetlenül lett beállítva a kapcsolódó pozíció tulajdonságok frissítése nélkül. Használja ListFormat.ListIndent()/ListOutdent() ehelyett, hogy beállítaná ListLevelNumber közvetlenül.

A képes felsorolásjel nem jelenik meg egy szinten. Nem jött létre képes felsorolásjel ahhoz a szinthez, vagy az alapértelmezett szöveges felsorolásformázás még aktív. Hívja meg ListLevel.CreatePictureBullet() és adja meg a képadatokat a szöveges felsorolásformázás eltávolítása előtt.

Az stílusra hivatkozó lista nem reagál a közvetlen formázási változásokra. Check List.IsListStyleReference — egy stílusra hivatkozó lista formázását a linked Style (via List.Style), nem a lista közvetlen szerkesztésével. Hasonlítsa össze a IsListStyleDefinition hogy megkülönböztesse a saját formázását meghatározó listát.


Gyakran Ismételt Kérdések

Mi a különbség a List és a ListFormat között?

List a bekezdések között megosztott újrahasználható számozási vagy jelölődefiníció. ListFormat bekezdésenkénti — azt mutatja, hogy melyik List egy adott bekezdés használ, és melyik szinten, a ListFormat.List és ListLevelNumber segítségével.

Hogyan ellenőrizhetem, hogy egy bekezdés már része-e egy listának?

Olvasd el a ListFormat.IsListItem a bekezdés formázásáról. Ha true, akkor a ListFormat.List és a ListLevelNumber megadják, hogy melyik lista és szint tartozik hozzá.

Hogyan indíthatok egy új listát, amely a számozást 1-től kezdi, függetlenül egy meglévő listától?

Használd a ListCollection.AddCopy(srcList)-t a lista definíció független másolatának létrehozásához, majd alkalmazd a másolatot az új bekezdésekre ahelyett, hogy az eredeti List-t újrahasználnád, amely tovább folytatná ugyanazt a számlálót.

Hogyan készíthetek egy felsorolásos vagy számozott listát a semmiből?

Használja a ListFormat.ApplyBulletDefault() vagy a ApplyNumberDefault() értéket a Word alapértelmezett formázásához, vagy a ListCollection.Add(listTemplate) értéket egy ListTemplate értékkel, hogy egy előre definiált formátummal induljon, és testre szabja a kapott List.ListLevels értéket.

Hogyan kapok olyan számformátumot, mint a “1)” a “1.” helyett?

Állítsa be a ListLevel.NumberFormat értékét a megfelelő szinten a kívánt formátumkaraktersorozatra, a NumberStyle értékkel együtt a számjegystílusra vonatkozóan.


Lásd még:

 Magyar