How to: Manipulate a FlowDocument through the Blocks Property

These examples demonstrate some of the more common operations that can be performed on a FlowDocument through the Blocks property.

Create a new FlowDocument

The following example creates a new FlowDocument and then appends a new Paragraph element to the FlowDocument.

FlowDocument flowDoc = new FlowDocument(new Paragraph(new Run("A bit of text content...")));
flowDoc.Blocks.Add(new Paragraph(new Run("Text to append...")));
Dim flowDoc As New FlowDocument(New Paragraph(New Run("A bit of text content...")))
flowDoc.Blocks.Add(New Paragraph(New Run("Text to append...")))

Create a new Paragraph element

The following example creates a new Paragraph element and inserts it at the beginning of the FlowDocument.

Paragraph p = new Paragraph(new Run("Text to insert..."));
flowDoc.Blocks.InsertBefore(flowDoc.Blocks.FirstBlock, p);
Dim p As New Paragraph(New Run("Text to insert..."))
flowDoc.Blocks.InsertBefore(flowDoc.Blocks.FirstBlock, p)

Get top-level Block elements

The following example gets the number of top-level Block elements contained in the FlowDocument.

int countTopLevelBlocks = flowDoc.Blocks.Count;
Dim countTopLevelBlocks As Integer = flowDoc.Blocks.Count

Delete the last Block element

The following example deletes the last Block element in the FlowDocument.

flowDoc.Blocks.Remove(flowDoc.Blocks.LastBlock);
flowDoc.Blocks.Remove(flowDoc.Blocks.LastBlock)

Clear all the Block contents

The following example clears all of the contents (Block elements) from the FlowDocument.

flowDoc.Blocks.Clear();
flowDoc.Blocks.Clear()

See also