Я хочу переместить каретку на 4 позиции вправо от того места, где сейчас находится моя каретка. Я зарегистрирован для PreviewKeyDown и звоню InsertTextInRun(), когда захвачена клавиша табуляции, например:
private void rtb_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
rtb.CaretPosition.InsertTextInRun(" ");
e.Handled = true;
}
}
Проблема в том, что курсор остается на месте после вызова InsertTextInRun(). Он не перемещается в конец нового текста, что мне и нужно. Как бы я это сделал?
Кстати, да, я знаю о свойстве AcceptsTab на RichTextBox. Я решил проигнорировать это и свернуть свою собственную функциональность табуляции, потому что табуляция с AcceptsTab имеет неприятный побочный эффект отступа текста в последующих строках, а это не то, что мне нужно.