c# WPF 中的语法高亮显示

标签 c# wpf

我找到了一个在 RichEdits for WPF 中进行语法高亮显示的教程:

http://blogs.microsoft.co.il/blogs/tamir/archive/2006/12/14/RichTextBox-syntax-highlighting.aspx

但是如果我从文件中打开我的命令列表,Editbox 会变得非常非常慢......可能有太多的单词需要突出显示。

我读到像 RichEdit 这样的 WPF 元素比 WinForms 元素慢得多。

如何使我的 WPF RichEdit 更快或将 Winforms RichEdit 包含到我的 WPF 中?

最佳答案

我在 .NET 1.1 中写了一个类似的语法荧光笔,性能很糟糕。我已经很多年没有重新讨论这个问题了,但在我看来一定有更好的方法。

我相信答案可能就在 RTF documentation 中。 .您可以定义颜色表和/或样式,然后使用它们来包装匹配的词。查看第 130 页“字体(字符)格式化属性”,cfN 和 csN。诀窍是尽快找到匹配项并插入控制字符。我是 RegEx 将是最快的扫描方法。

您也可以尝试将突出显示限制在可见空间周围的合理区域,甚至考虑将突出显示操作线程化到另一个进程。

我肯定有兴趣为这个问题找到一个好的解决方案。

关于c# WPF 中的语法高亮显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/859028/

相关文章:

c# - Windows Phone 7 - 使用 WebClient 处理 Application_UnhandledException 中的错误

c# - C# 中是否有任何 JSON Web token (JWT) 示例?

c# - WPF:打印 FlowDocument

c# - 使用RenderTargetBitmap保存部分显示图像

.net - 为什么单击其背景区域时 WPF 弹出窗口会关闭?

c# - 将 Entity Framework 导航属性映射到ViewModel对象

c# - ASP.NET C# - NavigateURL 与 RecordID 相结合

c# - 如何在 Startup.cs 文件的 ConfigureServices 方法的 AddJwtBearer 选项中设置动态 IssuerSigningKey 和 TokenDecryptionKey

c# - 覆盖自定义 JSON.net 契约(Contract)解析器中的属性值

c# - 如何使用 C# 将数据从另一个表单调用到文本框?