亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

突出顯示AvalonEdit所選單詞的所有實例

小云
102
2023-09-26 06:50:33
欄目: 編程語言

要突出顯示AvalonEdit中選擇的單詞的所有實例,您可以使用以下步驟:

  1. 獲取當前選擇的單詞:
string selectedWord = editor.SelectedText;
  1. 使用正則表達式來搜索和突出顯示所選單詞的實例。您可以將以下代碼添加到Editor的SelectionChanged事件處理程序中:
// 清除先前的突出顯示
editor.TextArea.TextView.LineTransformers.Clear();
// 使用正則表達式搜索所選單詞的實例并添加突出顯示器
Regex regex = new Regex("\\b" + Regex.Escape(selectedWord) + "\\b");
MatchCollection matches = regex.Matches(editor.Text);
foreach (Match match in matches)
{
int startOffset = editor.Document.GetOffset(match.Index);
int endOffset = editor.Document.GetOffset(match.Index + match.Length);
editor.TextArea.TextView.LineTransformers.Add(new HighlightingColorizer(startOffset, endOffset));
}
// 觸發重新渲染以顯示突出顯示
editor.TextArea.TextView.Redraw();
  1. 創建一個自定義的HighlightingColorizer類,用于突出顯示指定的范圍:
public class HighlightingColorizer : DocumentColorizingTransformer
{
private readonly int _startOffset;
private readonly int _endOffset;
public HighlightingColorizer(int startOffset, int endOffset)
{
_startOffset = startOffset;
_endOffset = endOffset;
}
protected override void ColorizeLine(DocumentLine line)
{
if (_startOffset > line.EndOffset || _endOffset < line.Offset)
return;
int start = Math.Max(_startOffset, line.Offset);
int end = Math.Min(_endOffset, line.EndOffset);
base.ChangeLinePart(start, end, (VisualLineElement element) =>
{
element.TextRunProperties.SetForegroundBrush(Brushes.Yellow);
});
}
}

以上代碼將選擇的單詞與文本中的單詞進行匹配,并對找到的單詞實例進行突出顯示。要注意的是,這里使用的是簡單的正則表達式來匹配整個單詞。如果您需要更復雜的匹配模式,可以根據您的需求進行修改。

請確保在添加突出顯示器之前清除先前的突出顯示器,以避免沖突和重疊的突出顯示。

0
九江市| 永丰县| 海兴县| 马关县| 上犹县| 岱山县| 措勤县| 宜都市| 揭东县| 洛宁县| 建昌县| 观塘区| 合川市| 东海县| 廊坊市| 成武县| 陆丰市| 库尔勒市| 阳山县| 内黄县| 吕梁市| 长春市| 拉萨市| 嘉禾县| 会理县| 道孚县| 民乐县| 哈密市| 龙泉市| 明光市| 扶沟县| 宜章县| 云南省| 龙口市| 濉溪县| 武邑县| 彭阳县| 绥阳县| 桦川县| 巩留县| 清镇市|