2016-06-19 20 views
0

我使用AvalonEdit.TextDocument控件。現在我想從中獲取當前的文本選擇/文本標記。但是這個階級沒有任何方便的財產或方法。 如何從AvalonEdit.TextDocument獲取當前的文本選擇?c#在AvalonEdit.TextDocument上獲取TextSelection

PS:它並不真正使這裏太大的意義,從我的應用程序中添加一些代碼

+1

'TextDocument'沒有選擇的概念,它只是文檔數據。你可以從'TextEditor'(簡單的選擇)或者'TextArea'(如果你需要完全控制它,例如多選區段等等)輕鬆地獲得選擇。 –

+0

好的,非常感謝!我以前不知道AvalonEdit。 – peter70

+0

嗯,我想你應該[閱讀文檔](http://avalonedit.net/documentation/)然後:) –

回答

0

我找到對付的選擇與AvalonEdit編輯的最簡單方法如下:

IEnumerable<SelectionSegment> selectionSegments = Editor.TextArea.Selection.Segments; 
TextDocument document = Editor.TextArea.Document; 
foreach (SelectionSegment segment in selectionSegments) 
{ 
    //DO WHAT YOU WANT WITH THE SELECTIONS 
    int lineStart = document.GetLineByOffset(segment.StartOffset).LineNumber; 
    int lineEnd = document.GetLineByOffset(segment.EndOffset).LineNumber; 
    for (int i = lineStart; i <= lineEnd; i++) 
    { 
     //Do something with each line in the selection segment 
    } 
} 

在我的情況下,我需要在每一行選擇標記的東西,所以這就是爲什麼我分成幾行。