Я не уверен, как решить вашу проблему, я взломал решение, хотя, похоже, оно работает.
Установите событие KeyDown, как показано ниже.
expenses.KeyDown += new KeyEventHandler(expenses_KeyDown);
В этом случае я поставил следующий код:
void expenses_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
expenses.Text += " ";
expenses.Focus();
expenses.LostFocus += new RoutedEventHandler(expenses_LostFocus);
}
}
А потом в LostFocus:
void expenses_LostFocus(object sender, RoutedEventArgs e)
{
expenses.Focus();
expenses.Select(expenses.Text.Length - 1, 0);
}
Последняя строка в LostFocus устанавливает курсор редактирования в конец текста, в противном случае, когда он получает фокус, позиция курсора находится в начале текстового поля