FlowDocumentReader & Annotations
This project can be found in /Annotations. In this example, the following concepts are applied:
- FlowDocumentReader
- AnnotationService
The application is very simple. It's main component is a Stackpanel, with a top Stackpanel with all the Buttons, and on the botton a FlowDocumentReader.
By having a FlowDocumentReader as the main body for our text, we can add annotations to it! Keep in mind, that these annotations are saved and loaded the next time you open the application!

Img 1. Screenshot of the application.
The application supports 2 types of Annotations: A sticky note, or a simple yellow highlight. Both can be added and removed.
To make this work, we only need a few simple things added to our project:
First of all, we need to add a namespace to our XAML, which includes all the needed commands. Also, 2 methods to be called in our code-behind for when the Window is opened & closed.
<Window ...
xmlns:a="clr-namespace:System.Windows.Annotations;assembly=PresentationFramework"
Initialized="Window_Initialized" Closed="Window_Closed"
...>
**Note** The code for the above methods, can be found Here

Img 2. Screenshot of the application with some annotations.