Winforms,ASP.NET,WPF的语法突出显示文本框

时间:2009-02-16 14:40:28

标签: asp.net wpf winforms syntax-highlighting components

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

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

我也知道ICSharp Text Editor组成的{{1}}组件,但那是一个独立的,但仅限Winforms的解决方案。

有没有人知道有一个核心来处理语法突出显示的组件(可配置,所以我可以将它用于C#代码,XML和HTML文件等),并且它有三个用于Winforms的“皮肤”, ASP.NET和WPF?我真的更喜欢拥有 ONE 核心来完成繁重的工作,并且顶部的三个UI共享核心代码....

欢迎任何指示和提示!

3 个答案:

答案 0 :(得分:6)

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

我能说的最好的是this thread表明ActiProSoftware正在为其语法高亮显示器开发WPF控件。

答案 1 :(得分:3)

也许考虑网络的CodeMirror项。显然,这不适用于你所要求的WPF,但它适用于任何Web框架--Webforms,ASP.NET MVC,纯HTML,PHP等。

  

CodeMirror是一个JavaScript库,可用于为类似代码的内容创建一个相对令人愉快的编辑器界面 - 计算机程序,HTML标记等。如果已经为您正在编辑的语言编写了解析器(请参阅下面的支持语言列表),代码将被着色,编辑器将帮助您缩进。

解析器:

  • 的JavaScript
  • XML / HTML
  • CSS
  • HTML混合模式
  • SPARQL
  • HTML + PHP混合模式
  • Python
  • Lua
  • 红宝石
  • SQL
  • PLSQL
  • diff
  • Groovy
  • C#
  • 方案
  • Java
  • XQuery
  • OmetaJS
  • Freemarker的

实现:

<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>

The CodeMirror manual helps

还要考虑WikiPedia entry for Comparison of JavaScript-based source code editors

答案 2 :(得分:2)

所有这些平台都完全不同,每个平台都有自己的渲染显示方法。因此,没有任何通用控制可以完成所有工作。每个平台都有一个单独的控件

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