В элементе управления Winforms RichTextBox я ранее использовал метод GetLineFromCharIndex и GetFirstCharIndexOfCurrentLine для определения начальной и конечной точек введенного текста в текущей строке.
Я борюсь с новым элементом управления RichTextBox в Silverlight 4, так как не существует эквивалентных методов. GetPositionFromPoint доступен, но выглядит неуклюже.
Приветствие.
Обновлено ... Я каким-то образом пошёл на выполнение этой работы, но это требует от меня использования метода выбора элемента управления, это очень неправильно ...
private string GetCurrentLine()
{
TextPointer prevSelStart = richTextBox1.Selection.Start;
Point lineStart = new Point(0, prevSelStart.GetCharacterRect(LogicalDirection.Forward).Y);
TextPointer prevSelEnd = richTextBox1.Selection.End;
TextPointer currentLineStart = richTextBox1.GetPositionFromPoint(lineStart);
//need to find a way to get the text between two textpointers
//other than performing a temporary selection in the rtb
richTextBox1.Selection.Select(currentLineStart, prevSelStart);
string text = richTextBox1.Selection.Text;
//revert back to previous selection
richTextBox1.Selection.Select(prevSelStart, prevSelEnd);
return text;
}