c# - 在 WPF 中显示 RichTextBox 中的行号

标签 c# wpf richtextbox line-numbers

我找到了一个示例,如何在 Windows 窗体中显示 RichTextBox 中的行号。 http://www.codeproject.com/Articles/38858/Line-Numbers-for-RichText-Control-in-C

有人在 WPF 中举个例子吗?

编辑:

有人在使用 AvalonEdit 吗,因为他想在他的程序中显示 LineNumbers 并且可以帮助我解决我的问题。

最佳答案

我只想添加一个简单的解决方案...

Avalon ( Download ) 已被提及,这里是如何用它做行:

<avalon:TextEditor ShowLineNumbers="True" Width="500" Height="500"
                    Text="some more test&#10; some more test&#10; some more test&#10; some more test&#10; some more test&#10; some more test&#10; some more test&#10; some more test&#10; some more test&#10; ">
</avalon:TextEditor>  

这是一个非常强大的编辑器——我已经在生产环境中(自定义语言编译器等)对它做了很多工作。它是免费的,所以它有它的“怪癖”,但它允许您做几乎任何您需要的事情。我不确定你在谈论哪种格式化文本 - 但你可以做任何你需要的事情,并且代码行不多,如果你知道如何,在哪里注入(inject)(你可以添加自己的生成器,转换器,几乎任何视觉效果、代码完成等 - 我对此没有既得利益:)

编辑

语法高亮的小例子:

<avalon:TextEditor 
  ShowLineNumbers="True" 
  SyntaxHighlighting="C#" Width="500" Height="500"
  Text="void Test(int id, string name)&#10;{&#10;&#09;name = name + id.ToString();}" />  

支持的是 “XmlDoc”、“C#”、“JavaScript”、“HTML”、“ASP/XHTML”、“Boo”、“Coco”、“CSS”、“C+”、“Java”、 “补丁”、“PHP”、“TeX”、“VBNET”、“XML” 据我从代码中可以看出。

如果您想实现自己的自定义语法高亮显示(Avalon 编辑器是高度可扩展的 - 有关详细信息,请参阅 code project article mentioned)...

您需要定义自己的 IHighlightingDefinition,然后将其注册到代码中的 HighlightingManager - 然后再添加一些内容进行补充。但这本身就是一个很长的故事。

关于c# - 在 WPF 中显示 RichTextBox 中的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15610940/

相关文章:

c# - 根据参数将SQL表中的数据拉取到DataTable中

c# - 通知模态表单的父级它需要采取一些行动

c# - 什么时候使用 StringBuilder?

c# - 向 WPF DataGrid 添加按钮

c# - 组合框中的自动完成

c# - 如何防止 richTextBox 在其中粘贴图像?

c# - Linq to Entities Query 中的 .Include() .Where() .Select()

Windows 窗体项目中的 WPF 窗体

c# - 使用 log4net 的 RichTextBoxAppender

.net - 如何在 RichTextBox 中创建上下文菜单