WPF TextBox Все время фокусироваться на конце текста, если не нажимаются клавиши со стрелками

Я пытаюсь сделать простой калькулятор, и он должен сосредоточиться на последнем числе, чтобы, когда текст слишком длинный, пользователь все еще мог видеть, что он / она набирает. Кроме того, если курсор не находится в конце строки (используются клавиши со стрелками), нажатие цифровой кнопки вернет его в конец строки. Как ты делаешь это?


person uhhh    schedule 11.08.2016    source источник
comment
Вы пытались сделать свойство WPF TextBox TextAlignment правой стороной.   -  person GauravKP    schedule 11.08.2016


Ответы (1)


Установите CaretIndex в конец ввода таким образом, когда получен ввод текста.

TextBoxName.CaretIndex = TextBoxName.Text.Length - 1;

Если вы пытаетесь создать калькулятор, подобный этому в Windows10, то текстовое поле должно быть доступно только для чтения. Вы можете установить TextAlignment на Right, чтобы текст отображался справа, как в калькуляторе Windows. Поскольку текстовое поле доступно только для чтения, когда пользователь нажимает на какое-то число, эту строку необходимо объединить с текстовым полем. Логика очень проста.

Вы можете найти в Google калькулятор WPF и найти несколько хороших примеров.

Если у вас есть калькулятор с двумя текстовыми полями и одним результирующим текстовым полем, вы можете воспользоваться методом, который я упомянул выше, чтобы добиться ожидаемого поведения.

person ViVi    schedule 11.08.2016
comment
Это хорошее дополнение к KeyboardFocus отсюда: stackoverflow.com/questions/20294658/ Просто добавьте вызов Focus в отдельный метод и включите изменение CaretIndex. - person GeorgiG; 19.08.2019