Perhaps consider CodeMirror items for the web. Obviously this won't work for WPF as you'd asked, but it'll work for any web framework - Webforms, ASP.NET MVC, plain HTML, PHP and others.
CodeMirror is a JavaScript library that can be used to create a relatively pleasant editor interface for code-like content ― computer programs, HTML markup, and similar. If a parser has been written for the language you are editing (see below for a list of supported languages), the code will be coloured, and the editor will help you with indentation.
Parsers for :
- JavaScript
- XML/HTML
- CSS
- HTML mixed-mode
- SPARQL
- HTML+PHP mixed-mode
- Python
- Lua
- Ruby
- SQL
- PLSQL
- diff
- Groovy
- C#
- Scheme
- Java
- XQuery
- OmetaJS
- Freemarker
Implementation:
<textarea rows="30" cols="120" id="someCode" >
//some comments
var foo = "bar";</textarea>
You include 2 .js references, and then this bit of JavaScript replaces your textarea elements with new syntax highlighted elements.
<script type="text/javascript">
var textarea = document.getElementById('someCode');
var editor = new MirrorFrame(CodeMirror.replace(textarea), {
height: "350px",
content: textarea.value,
parserfile: ["tokenizejavascript.js", "parsejavascript.js"],
stylesheet: "css/jscolors.css",
path: "js/",
autoMatchParens: true
});
</script>
Also consider the WikiPedia entry for Comparison of JavaScript-based source code editors