FlowDocument.IsColumnWidthFlexible Property

Gets or sets a value that indicates whether the ColumnWidth value is flexible or fixed. This is a dependency property.

Namespace:  System.Windows.Documents
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public bool IsColumnWidthFlexible { get; set; }
<object IsColumnWidthFlexible="bool" .../>

Property Value

Type: System.Boolean
true if the column width is flexible; false if the column width is fixed. The default is true.

The IsColumnWidthFlexible property determines the manner in which any excess content area width (that is, the difference between the page width and the width of the content after it is laid out) is distributed among columns. A setting of true means that the extra space is distributed equally to each column; in this case, columns may be sized wider than the width specified by the ColumnWidth property. A setting of false means excess space is distributed to the padding on the right side of the page; in this case, columns will always size to the width specified by the ColumnWidth property (so long as that width is smaller than the width of the page minus any PagePadding).

The following figure illustrates the difference in layout when this property is true or false. Light blue represents columns of content in a FlowDocument.

Screenshot: Compare IsColumnWidthFlexible values

For a sample that explores the IsColumnWidthFlexible property in real time, see Optimal Paragraph and Hyphenation in a FlowDocument Sample.

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

<FlowDocumentReader>
  <FlowDocument
    IsColumnWidthFlexible="True"
    PageWidth="400"
    ColumnWidth="100"
    PagePadding="0"
  >
    <Paragraph>
      If <Bold>IsColumnWidthFlexible</Bold> is false, this FlowDocument will always
      have 4 columns of width 100.  Because <Bold>IsColumnWidthFlexible</Bold> is true,
      this FlowDocument may be laid out such that the width of the is more than 100, resluting in
      fewer than 4 columns.
    </Paragraph>
  </FlowDocument>
</FlowDocumentReader>

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

FlowDocument flowDoc = new FlowDocument(new Paragraph(new Run("A bit of text content...")));
// Set minimum column width to 140 pixels.
flowDoc.IsColumnWidthFlexible = true;

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft