Annotation Service
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:a="clr-namespace:System.Windows.Annotations;assembly=PresentationFramework"
Title="Flow Document Reader + Annotations"
x:Class="Window1" Initialized="OnInitialized" Closed="OnClosed">
<StackPanel>
<StackPanel Orientation="Horizontal">
<Label>Control Annotations:</Label>
<Button Command="a:AnnotationService.CreateTextStickyNoteCommand"
CommandTarget="{Binding ElementName=reader}">Create Text Note</Button>
<Button Command="a:AnnotationService.CreateInkStickyNoteCommand" CommandTarget="{Binding ElementName=reader}">
Create Ink Note
</Button>
<Button Command="a:AnnotationService.DeleteStickyNotesCommand" CommandTarget="{Binding ElementName=reader}">
Remove Note
</Button>
<Button Command="a:AnnotationService.CreateHighlightCommand" CommandTarget="{Binding ElementName=reader}">
Create Yellow Highlight
</Button>
<Button Command="a:AnnotationService.ClearHighlightsCommand" CommandTarget="{Binding ElementName=reader}">
Remove Highlight
</Button>
</StackPanel>
<FlowDocumentReader x:Name="reader">
<FlowDocument>
<Paragraph FontSize="22" FontWeight="Bold">Chapter 1</Paragraph>
<Paragraph FontSize="35" FontWeight="Bold">Why WPF?</Paragraph>
<Paragraph>
this is a test
this is a test
this is a test
this is a test
this is a test
this is a test
this is a test
</Paragraph>
<Paragraph>
this is a test
this is a test
this is a test
this is a test
this is a test
this is a test
this is a test
this is a test
</Paragraph>
<Paragraph>
this is another test
</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
<Paragraph>...</Paragraph>
</FlowDocument>
</FlowDocumentReader>
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.IO
Imports System.Windows
Imports System.Windows.Annotations
Imports System.Windows.Annotations.Storage
Public Partial Class Window1
Inherits Window
Private stream As Stream
Public Sub New()
InitializeComponent()
End Sub
Protected Overloads Sub OnInitialized(sender As Object, e As EventArgs)
Dim service As AnnotationService = AnnotationService.GetService(reader)
If service Is Nothing Then
stream = New FileStream("storage.xml", FileMode.OpenOrCreate)
service = New AnnotationService(reader)
Dim store As AnnotationStore = New XmlStreamStore(stream)
service.Enable(store)
End If
End Sub
Protected Overloads Sub OnClosed(sender As Object, e As EventArgs)
Dim service As AnnotationService = AnnotationService.GetService(reader)
If service IsNot Nothing AndAlso service.IsEnabled Then
service.Store.Flush()
service.Disable()
stream.Close()
End If
End Sub
End Class
Related examples in the same category