8

我正在ICSharpCode.TextEditor.TextEditorControl用作我的 DSL 编辑器。当我遇到 DSL 编译错误时,我想突出显示有问题的文本以提供更好的用户体验。但是,我很难找到如何做到这一点。

到目前为止,我发现有一个ShowInvalidLines属性,但我没有看到将任何行标记为无效的方法。我也看到了它们的HighlightSpanStack属性,LineSegmentHighlightingStrategy不确定它们应该如何使用。

任何帮助,将不胜感激。谢谢!

4

1 回答 1

14

要突出显示一段文本,请使用 TextMarker。以下代码用红色波浪线在单词 Error 下划线。

TextEditorControl textEditor = new TextEditorControl();
textEditor.Text = "Mark Error";

int offset = 5;
int length = 5;
TextMarker marker = new TextMarker(offset, length, TextMarkerType.WaveLine, Color.Red);
textEditor.Document.MarkerStrategy.AddMarker(marker);

您可以使用任何背景和前景色突出显示文本,TextMarkerType 支持下划线、波浪线或纯色块。

于 2011-09-17T11:09:40.060 回答