Как я могу вставить текст в WPF textbox в положении знака вставки? Что я пропускаю? В Win32 Вы могли использовать CEdit:: ReplaceSel ().
Это должно работать, как будто Паста () команда была призвана. Но я хочу избегать использования клипборда.
Чтобы просто вставить текст на позиции CARET:
textBox.Text = textBox.Text.Insert(textBox.CaretIndex, "<new text>");
Чтобы заменить выбранный текст новым текстом:
textBox.SelectedText = "<new text>";
для прокрутки текстового ящика к позиции CARET:
int lineIndex = textBox.GetLineIndexFromCharacterIndex(textBox.CaretIndex);
textBox.ScrollToLine(lineIndex);
Я нашел еще более простое решение:
textBox.SelectedText = "New Text";
textBox.SelectionLength = 0;
затем прокрутите до позиции, как указано по Тарсие.
Используйте TextBox.caretindex, чтобы изменить текст, связанный с свойством TextBox.text.
Если вы хотите переместить каретку после вставленного текста, вам пригодится следующий код
textBox.SelectedText = "New Text";
textBox.CaretIndex += textBox.SelectedText.Length;
textBox.SelectionLength = 0;