Положение каретки текстового поля WPF XAML в конце - PullRequest
0 голосов
/ 28 марта 2020

Я разрабатываю приложение, которое использует много текстовых полей. Если они получили фокус, каретка находится на первой позиции текстового поля. Даже если текст уже существует. Я ищу решение для установки каретки в конце текста FOR ALL Texbox, когда они получили фокус.

Я знаю, что могу обработать событие GotFocus () - и затем установить позицию вручную. Но есть ли более разумное решение?

1 Ответ

1 голос
/ 28 марта 2020

Самый простой способ - использовать обработчик событий, как вы сказали.

private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
    TextBox textBox = sender as TextBox;
    textBox.CaretIndex = textBox.Text.Length;
}

Затем назначьте этот обработчик событий каждому TextBox.

CaretIndex в общем c TextBox не является собственностью. Таким образом, для более разумного решения необходимо как минимум создание пользовательского элемента управления, унаследованного от TextBox. Таким образом, вы можете сделать CaretIndex свойством. Тогда просто используйте Style.Triggers в xaml со свойством IsFocused.

...