You can use TextView.GetPositionto get the document position for corners of the text view:
TextViewPosition? start = textView.GetPosition(new Point(0, 0) + textView.ScrollOffset);
TextViewPosition? end = textView.GetPosition(new Point(textView.ActualWidth, textView.ActualHeight) + textView.ScrollOffset);
TextDocument.GetOffset TextViewPosition . , null, - , , , :
int startOffset = start != null ? document.GetOffset(start.Value.Location) : document.TextLength;
int endOffset = end != null ? document.GetOffset(end.Value.Location) : document.TextLength;
, , VisualLine/TextLines: VisualLine.VisualTop , ( Y), TextLine VisualLine Height. , , , GetCharacterHitFromDistance VisualLine.GetRelativeOffset . ( , TextView.GetPosition)