Я хочу переместить каретку на 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
имеет неприятный побочный эффект, заключающийся в отступе текста в последующих строках, что не , что я хочу.