Czy istnieje rozwiązanie , które ma tylko jeden odpowiednik, który zlicza tylko pozycje wstawiania tekstu zamiast wszystkich symboli?Ekwiwalent GetPositionAtOffset tylko dla tekstu?
przykład Motywacja w C#:
TextRange GetRange(RichTextBox rtb, int startIndex, int length) {
TextPointer startPointer = rtb.Document.ContentStart.GetPositionAtOffset(startIndex);
TextPointer endPointer = startPointer.GetPositionAtOffset(length);
return new TextRange(startPointer, endPointer);
}
Edit: Do tej pory I "rozwiązany" to w ten sposób
public static TextPointer GetInsertionPositionAtOffset(this TextPointer position, int offset, LogicalDirection direction)
{
if (!position.IsAtInsertionPosition) position = position.GetNextInsertionPosition(direction);
while (offset > 0 && position != null)
{
position = position.GetNextInsertionPosition(direction);
offset--;
if (Environment.NewLine.Length == 2 && position != null && position.IsAtLineStartPosition) offset --;
}
return position;
}
Wow ktoś NAPRAWDĘ nie chciał używać RichTextBox .. dzięki! – gjvdkamp