Toggle Hyphenation, Optimal Paragraph, and Column Flex : FlowDocument « Windows Presentation Foundation « VB.Net






Toggle Hyphenation, Optimal Paragraph, and Column Flex

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

   
    
    
    
    
    
  








Related examples in the same category

1.Add Paragraph to a FlowDocumentAdd Paragraph to a FlowDocument
2.Add Figure into a ParagraphAdd Figure into a Paragraph
3.FlowDocument with a ParagraphFlowDocument with a Paragraph
4.Paragraph elements and FlowDocumentPageViewerParagraph elements and FlowDocumentPageViewer
5.List with ListItems in a FlowDocumentList with ListItems in a FlowDocument
6.Put Paragraph to a ListItemPut Paragraph to a ListItem
7.Table in a FloaterTable in a Floater
8.Set font size for FlowDocumentSet font size for FlowDocument
9.Preserve space in FlowDocumentPreserve space in FlowDocument
10.TableCell and TableRow and TableRowGroupTableCell and TableRow and TableRowGroup
11.Put List to FlowDocumentPut List to FlowDocument
12.Use Table to display tabular data.Use Table to display tabular data.
13.Hyperlink Element
14.Paged ContentPaged Content
15.Text JustificationText Justification
16.Add Bold line to ParagraphAdd Bold line to Paragraph
17.A Paragraph inside a FloaterA Paragraph inside a Floater
18.Add Run of text to a ParagraphAdd Run of text to a Paragraph
19.Set HorizontalAnchor, VerticalAnchor, Background for FigureSet HorizontalAnchor, VerticalAnchor, Background for Figure
20.Nested listsNested lists
21.FontWeight of ParagraphFontWeight of Paragraph
22.BlockUIContainer with a Button along with ParagraphBlockUIContainer with a Button along with Paragraph
23.List MarkerStyleList MarkerStyle
24.Explicit table columnsExplicit table columns
25.Specifying figure widths in columns unitsSpecifying figure widths in columns units
26.Programmatically change the FlowDirection of content within a FlowDocumentReader elementProgrammatically change the FlowDirection of content within a FlowDocumentReader element
27.Use FlowDocumentReader to display FlowDocumentUse FlowDocumentReader to display FlowDocument
28.Programmatically Create and Save a FlowDocumentProgrammatically Create and Save a FlowDocument
29.Use XamlDesignerSerializationManager to write FlowDocumentUse XamlDesignerSerializationManager to write FlowDocument
30.Show FlowDocumentShow FlowDocument
31.Table Flow ContentTable Flow Content
32.Change FlowDocument Width and HeightChange FlowDocument Width and Height
33.Clear FlowDocumentReaderClear FlowDocumentReader
34.Programmatically add rows to a Table element.Programmatically add rows to a Table element.
35.Use basic typographic properties.Use basic typographic properties.
36.Annotation ServiceAnnotation Service