Toggle Hyphenation, Optimal Paragraph, and Column Flex
<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="FlowDocument Optimal Paragraph Sample"> <StackPanel> <CheckBox Click="ToggleHyphenation" Content="Automatic Hyphenation"/> <CheckBox Click="ToggleOptimalParagraph" Content=" Enable Optimal Paragraph Layout"/> <CheckBox Click="ToggleColumnFlex" Content="Enable Flexible Columns"/> <Slider Name="columnWidthSlider" ValueChanged="ChangeColumnWidth"/> <Slider Name="columnGapSlider" ValueChanged="ChangeColumnGap"/> <FlowDocumentReader Name="flowReader"> <FlowDocument Name="flowDoc" TextAlignment="Justify" IsOptimalParagraphEnabled="True" IsHyphenationEnabled="True" IsColumnWidthFlexible="True" Background="AliceBlue" ColumnWidth="300" ColumnGap="20"> <Paragraph><Italic>this is a test</Italic></Paragraph> <Paragraph> <Hyperlink NavigateUri="http://www-cs-faculty.stanford.edu/~knuth/"> - Donald E. Knuth </Hyperlink> </Paragraph> <Paragraph><Bold>Principle of Optimal Paragraph</Bold></Paragraph> <Paragraph>this is a test <Italic>italic</Italic> </Paragraph> <Paragraph>this is a test</Paragraph> <Paragraph>this is a test</Paragraph> <Paragraph>this is a test</Paragraph> </FlowDocument> </FlowDocumentReader> </StackPanel> </Window> //File:Window.xaml.vb Imports System Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Data Imports System.Windows.Documents Imports System.Windows.Media Imports System.Windows.Shapes Namespace WpfApplication1 Public Partial Class Window1 Inherits Window Private Sub ToggleHyphenation(sender As [Object], args As RoutedEventArgs) flowDoc.IsHyphenationEnabled = DirectCast(sender, CheckBox).IsChecked.Value End Sub Private Sub ToggleOptimalParagraph(sender As [Object], args As RoutedEventArgs) flowDoc.IsOptimalParagraphEnabled = DirectCast(sender, CheckBox).IsChecked.Value End Sub Private Sub ToggleColumnFlex(sender As [Object], args As RoutedEventArgs) flowDoc.IsColumnWidthFlexible = DirectCast(sender, CheckBox).IsChecked.Value End Sub Private Sub ChangeColumnWidth(sender As [Object], args As RoutedEventArgs) If columnWidthSlider.Value = 0 Then flowDoc.ColumnWidth = 100 ElseIf columnWidthSlider.Value = 1 Then flowDoc.ColumnWidth = 200 ElseIf columnWidthSlider.Value = 2 Then flowDoc.ColumnWidth = 300 ElseIf columnWidthSlider.Value = 3 Then flowDoc.ColumnWidth = 400 ElseIf columnWidthSlider.Value = 4 Then flowDoc.ColumnWidth = 500 End If End Sub Private Sub ChangeColumnGap(sender As [Object], args As RoutedEventArgs) If columnGapSlider.Value = 0 Then flowDoc.ColumnGap = 5 ElseIf columnGapSlider.Value = 1 Then flowDoc.ColumnGap = 10 ElseIf columnGapSlider.Value = 2 Then flowDoc.ColumnGap = 15 ElseIf columnGapSlider.Value = 3 Then flowDoc.ColumnGap = 20 ElseIf columnGapSlider.Value = 4 Then flowDoc.ColumnGap = 25 End If End Sub End Class End Namespace