Use Append(String) and its overloads to add text and formatting to the TextLayout instance. Use DefaultFormat to specify the default formatting for text fragments that are added without an explicitly associated format.
Call RecalculateGlyphs to calculate the glyphs needed to render the text. This also performs the required shaping. (If the content is modified (e.g. new text added) after this step, it can/should be repeated to recalculate the glyphs.)
Call PerformLayout to layout the formatted paragraphs within the specified bounds. This step can be done multiple times to layout the text within different bounds.