How do I move the caret a certain number of positions in a WPF RichTextBox?

后端 未结 3 1240
梦如初夏
梦如初夏 2021-01-05 04:44

I want to move the caret 4 positions to the right of where my caret currently is. I\'m registered for PreviewKeyDown, and calling InsertTextInRun()

3条回答
  •  伪装坚强ぢ
    2021-01-05 05:48

    Use the GetInsertionPosition() method on the CaretPosition TextPointer. This will allow you to insert the text before the caret.

    private void rtb_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Tab)
        {
            rtb.CaretPosition.GetInsertionPosition(LogicalDirection.Backward).InsertTextInRun("    ");
            e.Handled = true;
        }
    }
    

提交回复
热议问题