It's important to understand that AvalonEdit is a composite control with the three layers: <code>TextEditor</code> (main control), <code>TextArea</code> (editing), <code>TextView</code> (rendering).
It's important to understand that AvalonEdit is a composite control with the three layers: <code>TextEditor</code> (main control), <code>TextArea</code> (editing), <code>TextView</code> (rendering).
While the main control provides some convenience methods for common tasks, for most advanced features you have to work directly with the inner controls. You can access them using <code>textEditor.TextArea</code>
While the main control provides some convenience methods for common tasks, for most advanced features you have to work directly with the inner controls. You can access them using <code>textEditor.TextArea</code>
@ -188,7 +191,7 @@ It takes care of getting the document onto the screen.
<p>To do this in an extensible way, the <code>TextView</code> uses its own kind of model: the <code>VisualLine</code>.
<p>To do this in an extensible way, the <code>TextView</code> uses its own kind of model: the <code>VisualLine</code>.
Visual lines are created only for the visible part of the document.
Visual lines are created only for the visible part of the document.
The last step in the pipeline is the conversion to one or more <code>System.Windows.Media.TextFormatting.TextLine</code> instances. WPF then takes care of the actual text rendering.
The last step in the pipeline is the conversion to one or more <code>System.Windows.Media.TextFormatting.TextLine</code> instances. WPF then takes care of the actual text rendering.
<p>
<p>
The "element generators", "line transformers" and "background renderers" are the extension points; it is possible to add custom implementations of
The "element generators", "line transformers" and "background renderers" are the extension points; it is possible to add custom implementations of
@ -331,7 +334,7 @@ especially in languages like C# where sequences of <code>//</code> or <code>///<
You only have to handle the text entering events to determine when you want to show the window; all the UI is already done for you.
You only have to handle the text entering events to determine when you want to show the window; all the UI is already done for you.