Implements a sample implementation for using Highlightings with different (Light/Dark) WPF themes
This AvalonEdit extension implements its own highlighting manager that extends the classic way of handling highlighting definitions (see also Dirkster99/AvalonEdit-Samples).
The inital release contains 5 highlighting themes:
but you can easily define more themes. Just create a pull request with the XSHTD file at this site.
The standard highlighting in AvalonEdit is dependent on the currently viewed type of text (eg C# or SQL), but a highlighting definition designed for a Light WPF theme may look ugly if viewed with a Dark WPF theme, and vice versa. This is why the ThemedHighlightingManager extension associates each highlighting definition with:
This approach is very similar to the implementation in Notepad++ except Notepad++ uses a plain xml file to configure a highlighting theme whereas the ThemedHighlightingManager uses an XSHTD file to do the same. But at the end of the day, its XML in both projects, and cloning a highlighting theme from Notepad++ is almost too easy (thats how similar both implementations are).
Assuming that an application already use a WPF theming/management library, such as:
enables an applications author to switch highlighting definitions to a matching color palette whenever the user switches a given WPF theme. See AvalonEdit-Samples and Ähnlich for detailed sample implementations.
A WPF theme is a way of styling and theming WPF controls. This is usually implemented in a seperate library, such as:
and takes advantage of WPFs way of defining and using themes ('Dark', 'Light', 'True Blue'...) with XAML resources etc.
A Generic highlighting theme is a classic collection of AvalonEdit V2 highlighting definitions (collection of xshd files). In this project, there is only one such theme, the 'Light' highlighting theme. This theme is defined in a classic collection of xshd resource files at HL.Resources.Light.
A derived highlighting theme is a highlighting theme that makes use of a Generic Highlighting Theme and overwrites formattings defined in named colors by incorporating an additional xshtd file.
This approach re-uses the highlighting patterns of the generic theme but applies different colors and formattings to better support:
This project has multiple derived highlighting themes
which are based on the highlighting patterns of the 'Light' generic highlighting theme.
More demo projects may be listed at the AvalonEdit's Wiki page