FlowDocument.IsOptimalParagraphEnabled Property


Gets or sets a value that indicates whether optimal paragraph layout is enabled or disabled.

 property bool IsOptimalParagraphEnabled { bool get(); void set(bool value); };
public bool IsOptimalParagraphEnabled { get; set; }
member this.IsOptimalParagraphEnabled : bool with get, set
Public Property IsOptimalParagraphEnabled As Boolean

Property Value


true if optimal paragraph layout is enabled; otherwise, false. The default is false.


The following example shows how to set the IsOptimalParagraphEnabled attribute of a FlowDocument element.

    PageWidth="400" PageHeight="480"
      <Hyperlink NavigateUri="http://www.xbox.com/en-US/games/p/perfectdarkzero/default.htm">
        Perfect Dark Zero
      Joanna Dark returns in the Xbox 360 exclusive <Bold><Italic>Perfect Dark Zero</Italic></Bold>, the 
      prequel to the internationally award-winning and multi-million selling first-person shooter 
      <Italic>Perfect Dark</Italic> from famed game developer Rare.
      A secret war has begun between shadowy corporations bent on world domination. Joanna Dark and her father 
      Jack are caught up in the fight for the future of the planet. A routine bounty hunting mission rips open 
      a global conspiracy that will change Joanna's destiny—forever.
      Guide Joanna Dark on her journey to become the perfect agent. Featuring a compelling and captivating story, 
      <Italic>Perfect Dark Zero</Italic> plunges you into a world of corporate espionage and conspiracy. The title 
      merges the excitement and intrigue of its predecessor with revolutionary game design, cutting-edge online play,
      and amazing graphics to deliver an experience that defines next-generation gaming and entertainment...

The following figure shows how the preceding FlowDocument renders.

Screenshot: FlowDocument hyphen enabled

The following figure shows how the same FlowDocument renders with the default setting of IsOptimalParagraphEnabled=false.

Screenshot: FlowDocument with disabled hyphens

The following example shows how to set the IsOptimalParagraphEnabled property programmatically.

FlowDocument flowDoc = new FlowDocument(new Paragraph(new Run("A bit of text content...")));

// Enable automatic hyphenation.
flowDoc.IsHyphenationEnabled = true;
// Enable optimal paragraph layout.
flowDoc.IsOptimalParagraphEnabled = true;
Dim flowDoc As New FlowDocument(New Paragraph(New Run("A bit of text content...")))

' Enable automatic hyphenation.
flowDoc.IsHyphenationEnabled = True
' Enable optimal paragraph layout.
flowDoc.IsOptimalParagraphEnabled = True


Optimal paragraph layout is a feature that lays out paragraphs in the FlowDocument such that white space is distributed as evenly as possible. Theoretically, this provides an optimized reading experience by eliminating distracting white space that can occur with line-justified text and other layout routines. Optimal paragraph layout is particularly effective when coupled with automatic hyphenation (represented by the IsHyphenationEnabled property).

Dependency Property Information

Identifier field IsOptimalParagraphEnabledProperty
Metadata properties set to true AffectsMeasure

Applies to