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