12

我正在寻找一个语法高亮的文本框组件,最好是免费的,有源代码,并且能够在 Winforms、ASP.NET 和 WPF 中使用。此外,它不仅应该支持显示,还应该支持编辑内容。

我发现了适用于 ASP.NET 的出色的免费 ActiPro SyntaxHighlighter,但不幸的是,这仅适用于 ASP.NET,它仅以语法突出显示的方式显示文本,它没有编辑功能.....

我也知道作为SharpDevelopICSharp Text Editor一部分的组件,但那是一个独立的但仅限 Winforms 的解决方案。

有谁知道一个组件,它有一个核心来处理语法高亮(可配置,所以我可以将它用于 C# 代码、XML 和 HTML 文件等),并且它具有三个用于 Winforms、ASP.NET 的“皮肤”和WPF?我真的更喜欢有一个核心来完成繁重的工作,并且三个 UI 共享该核心代码......

欢迎任何指针和提示!

4

3 回答 3

7

我和你在一起,马克:我很想看到一个可扩展的语法高亮框架,它可以生成一个标记化的“文档”对象,然后可以通过每个显示框架的控件显示该对象。这样解析器/标记器可以编写一次!

我能说的最好的就是这个线程表明ActiProSoftware正在为他们的语法荧光笔开发 WPF 控件。

于 2009-04-03T03:50:06.030 回答
4

或许可以考虑用于 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 条目

于 2010-11-28T04:48:04.337 回答
2

所有这些平台都是完全不同的,每个平台都有自己的渲染显示方法。所以不会有任何通用的控制功能。每个平台都有单独的控件

但是,可以实现 Web 控件并在页面中使用它。那么winforms或者wpf中的浏览器对象就可以使用页面地址来显示了

于 2009-02-18T01:39:17.087 回答