Sample projects on GitHub
The samples in this documentation are also available as complete, runnable projects in a public repository: github.com/spicelogic/wpf-html-editor-control-samples. Each one is a small WPF application that references the shipping NuGet package, so there is nothing to wire up and no license key to obtain first - every sample runs on the free trial exactly as it is checked in.
The sample code is published under the MIT license, so you can copy any of it straight into your own application. The control itself remains commercial and is installed from NuGet.
What is in the repository
- 01-Quickstart - the smallest possible host: the editor filling the window in XAML, starting content set through
BodyHtml, and a status bar driven byHtmlChanged. - 02-MvvmDataBinding - the one most people come for.
BodyHtmlbound two-way to a view model, and a demonstration of why you callUpdateBindingsbefore reading a bound value. - 03-ThemeAndAppearance - border colour and thickness, the document font, and switching
EditorModebetween the design view and the source view. - 04-ToolbarCustomization - adding your own button to the editor's second toolbar strip from code-behind, so the toolbar matches your application rather than ours.
- 05-MailMergeTemplate - registering merge fields, turning on the built-in placeholder toolbar, and previewing a template with a record substituted in.
The gotcha the binding sample is built around
The editor hosts a live document rather than a plain string, so a bound view model property reflects whatever the binding last pushed into it. If you read that property from code which runs without the editor losing focus first - a keyboard shortcut, a background timer, a button that does not move focus - the view model is a moment behind the user's last keystrokes. Call UpdateBindings before reading, and the current content is pushed into the dependency properties first. This is the single most common support question about the control, which is why sample 02 is built entirely around it.
Which .NET version you need
Whichever one your application already uses. The control ships binaries for .NET Framework 4.5, 4.7.2 and 4.8, and for .NET 5, 6, 7, 8, 9 and 10 on Windows, so a long-lived WPF application on .NET Framework 4.8 is a first-class target rather than a compatibility afterthought.
The samples are checked in targeting net8.0-windows purely as a default. The target framework lives in a single line of Directory.Build.props at the repository root, which all five projects inherit, so retargeting the whole set is one edit:
<TargetFramework>net48</TargetFramework>
Every sample is verified to build cleanly on net45, net472, net48, net8.0-windows and net10.0-windows, with no source edits needed after retargeting.
Running the samples
You need Windows and the SDK matching whichever target you build against.
git clone https://github.com/spicelogic/wpf-html-editor-control-samples.git
cd wpf-html-editor-control-samples
dotnet build WpfHtmlEditorSamples.sln
dotnet run --project 01-Quickstart
You can also just open WpfHtmlEditorSamples.sln in Visual Studio and set any of the five projects as the startup project.
Building on Windows Forms as well
The WinForms edition of the control has its own sample repository covering Word paste cleanup, toolbar customization, loading and saving, and mail merge: github.com/spicelogic/winforms-html-editor-control-samples. See the WinForms HTML Editor control for the product itself.