或许可以考虑用于 Web 的CodeMirror项目。显然,这不适用于您所要求的 WPF,但它适用于任何 Web 框架 - Webforms、ASP.NET MVC、纯 HTML、PHP 等。
CodeMirror 是一个 JavaScript 库,可用于为类似代码的内容(计算机程序、HTML 标记等)创建一个相对舒适的编辑器界面。如果已经为您正在编辑的语言编写了解析器(请参阅下面的支持语言列表),代码将被着色,并且编辑器将帮助您进行缩进。
解析器:
- JavaScript
- XML/HTML
- CSS
- HTML 混合模式
- SPARQL
- HTML+PHP 混合模式
- Python
- 卢阿
- 红宝石
- SQL
- PLSQL
- 差异
- 时髦的
- C#
- 方案
- 爪哇
- XQuery
- OmetaJS
- 自由标记
执行:
<textarea rows="30" cols="120" id="someCode" >
//some comments
var foo = "bar";
</textarea>
您包含 2 个 .js 引用,然后这段 JavaScript 将您的 textarea 元素替换为新的语法高亮元素。
<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>
CodeMirror 手册有帮助。
还可以考虑基于 JavaScript 的源代码编辑器比较的 WikiPedia 条目