Controls at a Glance

🖥️

WordProcessor

The all-in-one component. Includes a toolbar, editor canvas, horizontal and vertical scrollbars, and a menu bar with file import/export. Drop it into your window for a complete word processing UI.

✏️

RichTextEditor

The bare editor canvas. Handles rendering, pointer input, keyboard input, and focus. Use this when you want to provide your own toolbar or scrollbar layout.

🔧

DocumentToolBar

The formatting toolbar. Provides font, size, color, alignment, list, indent, and line spacing controls. Binds to a RichTextEditor and synchronizes automatically with selection changes.

⚙️

Platform Layer

Internal classes that connect Core to Avalonia: DocumentRenderer (anti-flicker Skia cache), DocumentRenderOp, and AvaloniaClipboardHandler.

Component Relationships

WordProcessor
├── DocumentToolBar  ──── binds to ────► RichTextEditor
│     (toolbar)                              │
│                                     DocumentController  (from Core)
│                                            │
└── ScrollBars ─────── synchronized ────────┘
                       via OnContentSizeChanged

WordProcessor wires everything together. If you use RichTextEditor alone, you are responsible for providing a toolbar and syncing scrollbars.

Adding the AXAML Namespace

<Window
    xmlns="https://github.com/avaloniaui"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:pe="clr-namespace:ParentElement.RichText.Avalonia;assembly=ParentElement.RichText.Avalonia">

    <pe:WordProcessor x:Name="Editor" />

</Window>