Winforms、ASP.NET、WPF 的语法高亮文本框

     2023-02-23     189

关键词:

【中文标题】Winforms、ASP.NET、WPF 的语法高亮文本框【英文标题】:Syntax-highlighting textbox for Winforms, ASP.NET, WPF 【发布时间】:2010-10-07 21:33:37 【问题描述】:

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

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

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

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

欢迎任何指针和提示!

【问题讨论】:

【参考方案1】:

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

我能说的最好的就是this thread 建议ActiProSoftware 正在为他们的语法荧光笔开发 WPF 控件。

【讨论】:

【参考方案2】:

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

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

解析器:

JavaScript XML/HTML CSS HTML 混合模式 SPARQL HTML+PHP 混合模式 Python 卢阿 红宝石 SQL PLSQL 差异 时髦的 C# 方案 Java 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>

The CodeMirror manual helps.

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

哦,我完全理解 rendering 部分不可能对所有人都一样——但所有其他的东西,比如规则,哪些部分用什么颜色突出显示,和检测关键字等,都可以共享.....

Asp.net webform 控件是不是具有像 Winforms 控件一样的最高功能?

】Asp.netwebform控件是不是具有像Winforms控件一样的最高功能?【英文标题】:DoAsp.netwebformcontrolshavetopmostfeaturelikeWinformscontrolsdo?Asp.netwebform控件是否具有像Winforms控件一样的最高功能?【发布时间】:2015-04-2912:40:15【问题描述】:... 查看详情

哪个日志实用程序适用于 C#(ASP.NET、WinForms)中的 .NET 应用程序? [关闭]

】哪个日志实用程序适用于C#(ASP.NET、WinForms)中的.NET应用程序?[关闭]【英文标题】:Whichlogutilityisgoodfor.NETapplicationinC#(ASP.NET,WinForms)?[closed]【发布时间】:2011-01-0715:08:12【问题描述】:我正在尝试评估一些可用于.NET框架的最... 查看详情

从 ASP.NET 页面按钮启动 WPF 单击

】从ASP.NET页面按钮启动WPF单击【英文标题】:LaunchWPFfromASP.NETpagebuttonclick【发布时间】:2011-08-1108:20:12【问题描述】:我正在尝试编写一个包含按钮的aspx页面,该按钮的单击事件应导致打开WPF表单以进行进一步处理。我正在尝... 查看详情

asp.net和ado.net有啥异同?

...CS的,还有什么不一样的么?太不一样了,我看你主要是winforms和asp.net不理解,winforms主要是CS的开发,平时做的软件了什么的都属于那个。而asp.net的话是将web页面也放在一个窗体里,但是当然和winforms有区别了,这个设计到web的... 查看详情

WinForms中的WPF控件[关闭]

】WinForms中的WPF控件[关闭]【英文标题】:WPFcontrolsinWinForms[closed]【发布时间】:2011-06-2712:29:35【问题描述】:我是.NET世界的新手,我对winforms的经验很少。我想知道是否可以将WPF与Winforms混合使用。我的意思是我可以在传统的Wind... 查看详情

WinForms 互操作,从 WinForms 拖放 -> WPF

】WinForms互操作,从WinForms拖放->WPF【英文标题】:WinFormsInterop,Drag&DropfromWinForms->WPF【发布时间】:2010-11-1519:58:05【问题描述】:我正在尝试将数据从应用程序的Winforms部分拖到包含在“ElementHost”中的WPF控件上。当我尝试... 查看详情

WinForms 或 WPF 的文本差异可视化控件

】WinForms或WPF的文本差异可视化控件【英文标题】:TextdiffvisualizationcontrolforWinFormsorWPF【发布时间】:2010-09-1309:40:34【问题描述】:我的previousquestion的延续,文本差异可视化有什么好的控件吗?类似于***的修订差异查看器,但用... 查看详情

从 WinForms 迁移到 WPF

】从WinForms迁移到WPF【英文标题】:MovingfromWinFormstoWPF【发布时间】:2010-01-2811:24:24【问题描述】:我们正在考虑,WPF有哪些陷阱?我们得到了组件的flexgrid是否有任何具有相同功能的wpf网格?它的一个好处是您可以为单元格实现... 查看详情

是否有适用于 Windows 窗体的 Snoop (WPF) 或 FireBug (ASP.NET) 之类的东西? [关闭]

】是否有适用于Windows窗体的Snoop(WPF)或FireBug(ASP.NET)之类的东西?[关闭]【英文标题】:IstheresomethinglikeSnoop(WPF)orFireBug(ASP.NET)forWindowsForms?[closed]【发布时间】:2011-01-1616:05:32【问题描述】:我想用鼠标指向我的应用程序中的某个区... 查看详情

Winforms 中的 WPF 事件

】Winforms中的WPF事件【英文标题】:WPFEventsinWinforms【发布时间】:2011-05-2001:10:04【问题描述】:我有一个Winforms应用程序,该应用程序在ElementHost中使用WPF控件(如果重要,则为AvalonEdit)。它似乎工作正常,但我希望能够以Winform... 查看详情

在 WPF、Silverlight 和 ASP.NET 之间共享一个公共 DAL

】在WPF、Silverlight和ASP.NET之间共享一个公共DAL【英文标题】:SharingacommonDALbetweenWPF,Silverlight,andASP.NET【发布时间】:2011-04-2103:50:39【问题描述】:在WPF、Silverlight和ASP.NET之间共享同一数据访问层的最佳方法/技术是什么?我正在使... 查看详情

在 VS 2010 的 Winforms 项目中添加 WPF 窗口

】在VS2010的Winforms项目中添加WPF窗口【英文标题】:AddWPFWindowinaWinformsProjectinVS2010【发布时间】:2012-01-2123:21:33【问题描述】:在VS2010中选择“添加新项目”时,是否可以从winforms项目访问所有WPF项目?默认情况下,我只能访问WPF... 查看详情

WPF 与 Winforms 中的窗口透明度

】WPF与Winforms中的窗口透明度【英文标题】:WindowtransparencyinWPFvsWinforms【发布时间】:2011-03-2609:30:42【问题描述】:为什么我必须在WPF表单上将WindowStyle属性设置为None以获得透明度,但在Winforms中我可以在任何表单上执行此操作... 查看详情

在winforms或wpf中拖放

】在winforms或wpf中拖放【英文标题】:draganddropinwinformsorwpf【发布时间】:2010-10-2006:03:11【问题描述】:我想创建一个简单的winforms或wpf应用程序,我可以在其中拖放虚拟“卡片”。下面这不是我想要做的,但它是我在网上找到的... 查看详情

如何对 ASP .NET WebAPI 2 的 WPF 客户端请求进行身份验证

】如何对ASP.NETWebAPI2的WPF客户端请求进行身份验证【英文标题】:HowtoauthenticateWPFClientrequesttoASP.NETWebAPI2【发布时间】:2014-01-0219:41:34【问题描述】:我刚刚创建了一个ASP.NETMVC5WebAPI项目并添加了实体框架模型和其他东西以使其与A... 查看详情

如何在 WPF 或 WinForms 中呈现公式

】如何在WPF或WinForms中呈现公式【英文标题】:HowtorenderaformulainWPForWinForms【发布时间】:2012-02-1212:39:08【问题描述】:2018年更新TL;DR;用于WPF的LaTEXhttps://github.com/ForNeVeR/wpf-math原始问题我需要一种在Windows窗体或WPF中绘制数学公式... 查看详情

哪个具有更快的运行时性能:WPF 或 Winforms?

】哪个具有更快的运行时性能:WPF或Winforms?【英文标题】:Whichonehasafasterruntimeperformance:WPForWinforms?【发布时间】:2011-02-0107:27:23【问题描述】:我知道WPF更复杂且更灵活,因此可以考虑进行更多计算。但既然渲染是在GPU上完成... 查看详情

实体框架 + SQL Server Compact + WPF/WinForms = 缓慢的 UI?

】实体框架+SQLServerCompact+WPF/WinForms=缓慢的UI?【英文标题】:EntityFramework+SQLServerCompact+WPF/WinForms=SluggishUI?【发布时间】:2014-03-2615:54:56【问题描述】:实体框架不允许在多个数据库上下文之间共享同一个实体。因此,我必须在GUI... 查看详情