Programmatically Create and Save a FlowDocument : FlowDocument « Windows Presentation Foundation « VB.Net






Programmatically Create and Save a FlowDocument

Programmatically Create and Save a FlowDocument
    

<Window 
  x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
  <DockPanel>
    <Button DockPanel.Dock="Bottom" Content="Save..." Click="btnSave_Click"/>
    <FlowDocumentReader x:Name="fdrViewer" />
  </DockPanel>
</Window>

//File:Window.xaml.vb

Imports System
Imports System.IO
Imports System.Windows
Imports System.Windows.Documents
Imports System.Windows.Markup
Imports System.Windows.Media
Imports System.Windows.Shapes
Imports System.Xml
Imports Microsoft.Win32

Namespace WpfApplication1
  Public Partial Class Window1
    Inherits Window
    Public Sub New()
      InitializeComponent()
    End Sub
    Private Sub btnSave_Click(sender As Object, e As RoutedEventArgs)

      SaveFile("c:\", fdrViewer.Document)
    End Sub
    Private Sub SaveFile(fileName As String, documentSource As IDocumentPaginatorSource)
      Dim xmlWriter As XmlTextWriter = Nothing
      Dim writer As TextWriter = Nothing
      Dim file__1 As Stream = Nothing

      Try
        file__1 = File.Create(fileName)
        writer = New StreamWriter(file__1)

        xmlWriter = New XmlTextWriter(writer)

        Dim xamlManager As New XamlDesignerSerializationManager(xmlWriter)

        XamlWriter.Save(documentSource.DocumentPaginator.Source, xamlManager)
      Catch e As Exception
        Dim msg As String = String.Format("Error occurred during saving.{0}{0}{1}", Environment.NewLine, e.Message)

        MessageBox.Show(msg, "Error", MessageBoxButton.OK, MessageBoxImage.[Error])
      End Try
    End Sub

    Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
      Dim flowDocument As New FlowDocument()
      Dim paragraph As New Paragraph()
      paragraph.Inlines.Add("This is a paragraph.")
      flowDocument.Blocks.Add(paragraph)

      flowDocument.Blocks.Add(paragraph)

      fdrViewer.Document = flowDocument
    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.Use XamlDesignerSerializationManager to write FlowDocumentUse XamlDesignerSerializationManager to write FlowDocument
29.Show FlowDocumentShow FlowDocument
30.Table Flow ContentTable Flow Content
31.Change FlowDocument Width and HeightChange FlowDocument Width and Height
32.Clear FlowDocumentReaderClear FlowDocumentReader
33.Programmatically add rows to a Table element.Programmatically add rows to a Table element.
34.Toggle Hyphenation, Optimal Paragraph, and Column FlexToggle Hyphenation, Optimal Paragraph, and Column Flex
35.Use basic typographic properties.Use basic typographic properties.
36.Annotation ServiceAnnotation Service