List (for example, ordered - with numbers, or unordered - with bullets) appearance in GemBox.Document is defined through ListFormat class that is set on Paragraph's ListFormat property or ParagraphStyle's ListFormat property.
Paragraph's list (indentation) level can be adjusted with ListFormat.ListLevelNumber property. Paragraph's list-related formatting will then be collected from the ListLevelFormat instance contained in the ListStyle.ListLevelFormats at the position ListFormat.ListLevelNumber. This ListLevelFormat can also be retrieved from the ListFormat.ListLevelFormat property.
ListLevelFormat retrieved from the ListFormat.ListLevelFormat property can be additionally modified to enable overriding property values of ListLevelFormat instance contained in the ListStyle.ListLevelFormats at the position ListFormat.ListLevelNumber on a Paragraph or ParagraphStyle basis.
To create a list in a document, first ListStyle instance has to be created from one of the predefined list style types specified with ListTemplateType enumeration. After that, ListFormat can be created with a specified ListStyle and assigned to a Paragraph's ListFormat property. For a complete example, see Lists sample.
If document content or formatting is changed, then CalculateListItems method should be called again to retrieve the latest list items.
After calling Dispose on IEnumeratorT instance retrieved by calling GetEnumerator on instance returned from CalculateListItems method, paragraph's ListItem property will be even if paragraph's IsList is . This enables easy iteration over ListItems returned from CalculateListItems method by using foreach statement and removing all references to ListItems after the iteration is finished.