在我以前使用過GetLineFromCharIndex方法的WinForms RichTextBox控件和GetFirstCharIndexOfCurrentLine到光標移到輸入文本的制定出起點和終點他目前的路線。如何獲取當前行文本從Silverlight 4中RichTextBox控件
我在Silverlight 4中使用新的RichTextBox控件掙扎着,因爲看起來沒有等效的方法。 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;
}
我的這種方法關注的是,是火災SelectionChanged事件人爲的兩倍。爲了克服這一點,我需要暫時取消訂閱活動用戶。醜陋。 – 2010-08-13 11:01:41