Δουλεύοντας με Λίστες

Δουλεύοντας με Λίστες

Εργασία με Λίστες

Αυτός ο οδηγός δείχνει πώς οι αριθμημένες και με κουκκίδες λίστες αντιπροσωπεύονται και ελέγχονται στο Aspose.Words FOSS για .NET. Ένα List είναι ένας επαναχρησιμοποιήσιμος ορισμός λίστας που μοιράζεται από κάθε παράγραφο που το χρησιμοποιεί, το ListFormat είναι ο τρόπος με τον οποίο μια μεμονωμένη παράγραφος αναφέρεται σε μια λίστα και στο τρέχον επίπεδό της, και το ListLevel περιέχει την πραγματική μορφοποίηση αρίθμησης ή κουκκίδας για ένα επίπεδο λίστας.


Το Αντικείμενο Λίστας και ListCollection

List αντιπροσωπεύει έναν ορισμό λίστας — τους κανόνες αρίθμησης που ένα έγγραφο μπορεί να εφαρμόσει σε πολλές παραγράφους. Το List.ListId την ταυτοποιεί, το List.IsMultiLevel αναφέρει αν ορίζει περισσότερα από ένα επίπεδο, και το List.ListLevels επιστρέφει ένα ListLevelCollection που περιέχει ένα ListLevel ανά επίπεδο που ορίζει η λίστα. Τα List.IsListStyleDefinition και IsListStyleReference διακρίνουν μια λίστα που ορίζει τη δική της μορφοποίηση από αυτή που αναφέρεται σε μορφοποίηση μέσω ενός συνδεδεμένου Style (διαθέσιμο μέσω List.Style). Οι λίστες κάθε εγγράφου προσεγγίζονται μέσω του Document.Lists, που επιστρέφει ένα ListCollection: το ListCollection.Add(listTemplate) δημιουργεί μια νέα λίστα από μία από τις προορισμένες μορφές ListTemplate του Word, το Add(listStyle) δημιουργεί μία από ένα Style, το AddSingleLevelList(listTemplate) δημιουργεί μια παραλλαγή μονοεπίπεδου, και το AddCopy(srcList) αντιγράφει μια υπάρχουσα λίστα — χρήσιμο όταν θέλετε οι παράγραφοι να έχουν ανεξάρτητη αρίθμηση (μια φρέσκια επανεκκίνηση) αντί να μοιράζονται τον ίδιο μετρητή. Το ListCollection.GetListByListId(listId) ανακτά μια συγκεκριμένη λίστα, και το Count αναφέρει πόσες λίστες περιέχει το έγγραφο.

Εφαρμογή Λιστών σε Παραγράφους με ListFormat

ListFormat, που προέρχεται από τη μορφοποίηση μιας παραγράφου, ελέγχει σε ποια λίστα ανήκει μια παράγραφος και σε ποιο επίπεδο. Το ListFormat.List είναι το List που χρησιμοποιεί η παράγραφος, και το ListFormat.ListLevelNumber είναι το μηδενικό επίπεδο μέσα σε αυτή τη λίστα· το IsListItem αναφέρει αν η παράγραφος αποτελεί μέρος λίστας καθόλου. Τα ApplyBulletDefault() και ApplyNumberDefault() εφαρμόζουν την προεπιλεγμένη μορφοποίηση λίστας με κουκκίδες ή αριθμημένη του Word σε μια παράγραφο με μία κλήση, το RemoveNumbers() αφαιρεί τη μορφοποίηση λίστας, και τα ListIndent()/ListOutdent() μετακινούν μια παράγραφο πιο βαθιά ή πιο ρηχά στα επίπεδα της λίστας — οι ίδιες ενέργειες που εκτελεί το Word όταν πατιέται Tab ή Shift+Tab στην αρχή μιας παραγράφου λίστας.

Επίπεδα Λίστας και Στυλ Αρίθμησης

ListLevel περιέχει τη μορφοποίηση για ένα επίπεδο λίστας: NumberStyle (μια τιμή enum NumberStyle όπως αραβικοί ή ρωμαϊκοί αριθμοί), NumberFormat (η συμβολοσειρά μορφής που συνδυάζει τον αριθμό με κυριολεκτικό κείμενο, όπως τελεία ή παρενθέσεις), StartAt (ο αρχικός αριθμός) και RestartAfterLevel (ποιο ανώτερο επίπεδο επανεκκινεί τον μετρητή αυτού του επιπέδου). Alignment (μια τιμή ListLevelAlignment: Left, Center, Right) και TrailingCharacter (μια τιμή ListTrailingCharacter: Tab, Space, Nothing) ελέγχουν πώς το ετικέτα τοποθετείται και χωρίζεται από το κείμενο της παραγράφου, μαζί με τα TabPosition, NumberPosition και TextPosition για ακριβή διάταξη. IsLegal επιβάλλει αριθμητική μορφή τύπου νομικού (πάντα αραβική, ανεξάρτητα από NumberStyle), και LinkedStyle συσχετίζει το επίπεδο με μια παράγραφο Style. Για εικόνες κουκίδων, τα CreatePictureBullet() και DeletePictureBullet() διαχειρίζονται μια εικόνα κουκίδας ImageData, και το ListLevel.Font ορίζει τη μορφοποίηση του αριθμού ή του χαρακτήρα της κουκίδας. Το ListLevel.GetEffectiveValue(index, numberStyle, customNumberStyleFormat) υπολογίζει την πραγματική τιμή ετικέτας σε δεδομένη θέση στη σειρά αρίθμησης.

Ετικέτες Λιστών και Προκαθορισμένα Πρότυπα

ListLabel περιγράφει την εμφανιζόμενη ετικέτα για μια συγκεκριμένη εμφάνιση στοιχείου λίστας — το LabelString είναι το κυριολεκτικό κείμενο που εμφανίζει το Word (όπως “3.” ή “•”), το LabelValue είναι η υποκείμενη αριθμητική τιμή, και το Font είναι η μορφοποίηση της ετικέτας. Το ListTemplate είναι ένα enum των προκαθορισμένων μορφών λίστας του Word (στυλ κουκίδων όπως BulletDefault, BulletDisk, BulletCircle, BulletSquare, BulletDiamonds και αριθμημένες μορφές), που χρησιμοποιείται με το ListCollection.Add(listTemplate) για να ξεκινήσει από μια ενσωματωμένη μορφή αντί να δημιουργεί κάθε ιδιότητα ξεχωριστά.


Συμβουλές και Καλές Πρακτικές

  • Χρησιμοποιήστε το ListCollection.AddCopy(srcList) όταν μια νέα ομάδα παραγράφων χρειάζεται αριθμητική λίστα που ξεκινά ξανά ανεξάρτητα, αντί να επαναχρησιμοποιείτε ένα List που είναι ήδη συνδεδεμένο με άλλες παραγράφους.
  • Προτιμήστε το ListFormat.ApplyNumberDefault() / ApplyBulletDefault() για τυπικές λίστες αντί για χειροκίνητη ρύθμιση κάθε ιδιότητας ListLevel.
  • Ελέγξτε το List.IsListStyleReference έναντι του IsListStyleDefinition πριν τροποποιήσετε άμεσα τη μορφοποίηση της λίστας — η μορφοποίηση μιας λίστας που αναφέρεται σε στυλ μπορεί να ελέγχεται από το συνδεδεμένο της Style.
  • Ορίστε το RestartAfterLevel ρητά σε ένθετες λίστες αντί να βασίζεστε στη προεπιλεγμένη συμπεριφορά επανεκκίνησης όταν η αρίθμηση πρέπει να μηδενιστεί σε συγκεκριμένα επίπεδα διάρθρωσης.
  • Χρησιμοποιήστε το ListFormat.ListIndent()/ListOutdent() για να μετακινήσετε μια παράγραφο μεταξύ επιπέδων λίστας αντί να ορίσετε το ListLevelNumber απευθείας, καθώς αυτές οι μέθοδοι διατηρούν τη μορφοποίηση λίστας της παραγράφου εσωτερικά συνεπή.

Συνηθισμένα Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Δύο παραγράφοι που πρέπει να αριθμούνται ανεξάρτητα συνεχίζουν την ίδια ακολουθίαΤο ListFormat.List και των δύο παραγράφων αναφέρεται στο ίδιο κοινό αντικείμενο ListΔώστε στη δεύτερη παράγραφο τη δική της λίστα μέσω του ListCollection.AddCopy(srcList) αντί να επαναχρησιμοποιήσετε το ίδιο List
Μια προσαρμοσμένη συμβολοσειρά μορφοποίησης αρίθμησης δεν εμφανίζεται όπως αναμένεταιΤο ListLevel.NumberFormat δεν ταιριάζει με το αναμενόμενο μοτίβο για το NumberStyle του επιπέδουΕπαληθεύστε ότι τα NumberFormat και NumberStyle έχουν οριστεί σταθερά για το επίπεδο που επεξεργάζεστε
Η εσοχή της λίστας φαίνεται λανθασμένη μετά την προγραμματιστική αλλαγή των επιπέδωνΤο ListLevelNumber ορίστηκε άμεσα χωρίς να ενημερωθούν οι σχετικές ιδιότητες θέσηςΧρησιμοποιήστε ListFormat.ListIndent()/ListOutdent() αντί να ορίζετε το ListLevelNumber άμεσα
Δεν εμφανίζεται η εικόνα κουκκίδαςΔεν δημιουργήθηκε εικόνα κουκκίδας για το επίπεδο, ή η προεπιλεγμένη μορφοποίηση κειμενικής κουκκίδας παραμένει ενεργήΚαλέστε το ListLevel.CreatePictureBullet() και παρέχετε τα δεδομένα εικόνας πριν αφαιρέσετε τη μορφοποίηση κειμενικής κουκκίδας

FAQ

Ποια είναι η διαφορά μεταξύ List και ListFormat;

List είναι ο επαναχρησιμοποιήσιμος ορισμός αρίθμησης/κουκίδας που μοιράζεται μεταξύ παραγράφων· ListFormat είναι ανά παράγραφο — δείχνει ποιο List χρησιμοποιεί μια συγκεκριμένη παράγραφος και σε ποιο επίπεδο, μέσω ListFormat.List και ListLevelNumber.

Πώς μπορώ να ελέγξω αν μια παράγραφος αποτελεί μέρος λίστας;

Διαβάστε το ListFormat.IsListItem για τη μορφοποίηση της παραγράφου· εάν true, τα ListFormat.List και ListLevelNumber περιγράφουν σε ποια λίστα και επίπεδο ανήκει.

Πώς μπορώ να κάνω μια νέα λίστα να ξεκινά την αρίθμηση από το 1 ανεξάρτητα από μια υπάρχουσα λίστα;

Χρησιμοποιήστε το ListCollection.AddCopy(srcList) για να δημιουργήσετε ένα ανεξάρτητο αντίγραφο του ορισμού λίστας, στη συνέχεια εφαρμόστε το αντίγραφο στα νέα παραγράφους — αντί να επαναχρησιμοποιήσετε το αρχικό List, το οποίο θα συνέχιζε τον ίδιο μετρητή.

Πώς μπορώ να δημιουργήσω μια λίστα με κουκίδες ή αριθμημένη από το μηδέν;

Χρησιμοποιήστε το ListFormat.ApplyBulletDefault() ή το ApplyNumberDefault() για την προεπιλεγμένη μορφοποίηση του Word, ή το ListCollection.Add(listTemplate) με μια τιμή ListTemplate για να ξεκινήσετε από μία από τις προεπιλεγμένες μορφές του Word και να προσαρμόσετε το προκύπτον List.ListLevels από εκεί.

Πώς ελέγχω τη μορφή αριθμού, όπως το «1)» αντί για το «1.»;

Ορίστε το ListLevel.NumberFormat στο σχετικό επίπεδο στην επιθυμητή συμβολοσειρά μορφής, μαζί με το NumberStyle για το ίδιο το στυλ αριθμητικού.


API Reference Σύνοψη

Κλάση/ΜέθοδοςΠεριγραφή
ListΟρισμός επαναχρησιμοποιήσιμης λίστας (αρίθμηση/κουκίδα)
ListCollectionΗ συλλογή όλων των λιστών σε ένα έγγραφο
ListCollection.Add(listTemplate) / AddCopy(srcList)Δημιουργήστε μια λίστα από ένα προκαθορισμένο πρότυπο ή αντιγράψτε μια υπάρχουσα
ListFormatΑναφορά ανά παράγραφο σε ένα List και στο τρέχον επίπεδο
ListFormat.ApplyBulletDefault() / ApplyNumberDefault()Εφαρμόστε την προεπιλεγμένη μορφοποίηση με κουκίδες ή αριθμημένη σε μια παράγραφο
ListLevelΜορφοποίηση αριθμών/κουκίδων για ένα επίπεδο ενός List
ListLevel.NumberStyle / NumberFormatΤο στυλ αριθμητικού και η συμβολοσειρά μορφής για ένα επίπεδο
ListLabelΗ αποδοθείσα ετικέτα (κείμενο και τιμή) για ένα συγκεκριμένο στοιχείο λίστας
ListTemplateEnum των προκαθορισμένων μορφών λίστας του Word

Δείτε επίσης

 Ελληνικά