У меня есть два текстовых поля. У меня есть настройка события для «onLostFocus» текстовых полей. Если я закончу вводить слово в оба поля один за другим, все будет хорошо. В тот момент, когда я нажимаю обратно на первое текстовое поле, я хочу нажать на полпути через слово (совершенно разумная вещь для пользователя). Когда происходит событие onLostFocus, вот мой код:
void tbox_LostFocus(object sender, RoutedEventArgs e)
{
IInputElement focusedelement = FocusManager.GetFocusedElement(this);
if (focusedelement is TextBox)
{
TextBox focusedTextBox = focusedelement as TextBox;
int focusIndex = m_commandsStacker.Children.IndexOf(focusedTextBox);
int caretIndex = focusedTextBox.CaretIndex;
Индекс каретки возвращается как 0, когда я вызываю focusTextBox.CaretIndex. В этот момент мне нужно обновить всю форму и установить параметры и все другие виды странностей, сохраняя индекс texbox и позицию каретки, чтобы вернуть все обратно. Почему он возвращает 0, а не позицию, в которой курсор должен находиться на полпути между словом?