Я был несколько озадачен тем, как справиться со следующим: для простоты, скажем, у меня есть два текстовых поля внутри пользовательского элемента управления, содержащиеся на одной вкладке TabControl
, и различные другие элементы управления на других вкладках. , которые для этого примера несущественны. Когда мои пользователи нажимают клавишу табуляции, чтобы перейти от одного текстового поля к другому, TabControl
фактически переключает вкладки ... само собой разумеется, что такое поведение не может происходить в производственной среде. Можно ли каким-то образом отловить жест клавиши табуляции для активного пользовательского элемента управления, чтобы он не всплывал? До сих пор безуспешно пробовал следующее:
XAML
<TabControl.InputBindings>
<KeyBinding Gesture="TAB" Command="{Binding CancelTabChangeCommand}"/>
</TabControl.InputBindings>
C#
this.CancelTabChangeCommand = new DelegateCommand<object>(t => { });
Обычно я перехватываю событие нажатия клавиши предварительного просмотра и проверяю, являются ли жесты теми, которые я пытаюсь отключить, а затем отмечаю свойство handled в аргументах события, но так как мое приложение MVVM, я дрейфовал немного вне моей экспертизы по этому вопросу. Выше я надеялся, что установка жеста клавиши на пустую команду переопределит нормальное событие, но это явно не так.
Любая помощь будет великолепна.