Как вы можете получить следующий элемент в порядке табуляции, фактически не изменяя текущий элемент?

В нашем приложении WPF нам нужно знать, какой элемент управления получит следующий фокус, если мы нажмем клавишу Tab. Однако мы не хотим, чтобы фокус действительно менялся. Нам просто нужно знать, кто получит фокус.

Можно ли это сделать?


person Mark A. Donohoe    schedule 29.08.2014    source источник


Ответы (2)


Вы можете использовать UIElement.PredictFocus метод:

var nextFocusedControl =
    currentFocusedControl.PredictFocus(FocusNavigationDirection.Next);
person Thomas Levesque    schedule 29.08.2014
comment
Как, черт возьми, я пропустил это?!! Это именно то, что я хотел. Спасибо! - person Mark A. Donohoe; 29.08.2014
comment
Мне довелось увидеть ответ Томаса после того, как я опубликовал ответ .. Ответ @Thomas Levesque хорош .. - person kishore V M; 29.08.2014
comment
На самом деле это не работает, потому что Next не поддерживается PredictFocus. Это приведет к исключению. - person O. R. Mapper; 02.03.2020

Насколько я понимаю, вы можете добиться этого,

  1. Зацикливание всех элементов управления на этом контейнере/странице
  2. Проверьте свойство индекса вкладки
  3. И нужный вам элемент управления будет иметь Tabindexofcuurrentcontrol +1, надеюсь, это поможет
person kishore V M    schedule 29.08.2014