У меня есть Page
содержащая некоторые элементы управления, эта страница будет загружена в ContentControl
в Window
.
Теперь, как я могу ограничить цикл фокусировки на моей Page
? Я не хочу передавать фокус из Page
после нажатия TAB в последнем элементе моей страницы.
Как краткое описание, как определить следующий контроль фокусировки и изменить его
Всегда трудно понять, чего хочет автор вопроса, когда они не удосужились предоставить вам более чем несколько поспешно напечатанных строк. Однако, насколько я понимаю вашу проблему, кажется, что у вас есть проблемы с фокусировкой в вашем приложении WPF.
Первое, что вам нужно сделать, - направить вас на страницу " Обзор фокуса" в MSDN, где вы можете узнать о различных типах фокусов, используемых в WPF. В частности, обратите внимание на программный раздел "Навигационный фокус", в котором обсуждается класс TraversalRequest
который может помочь разработчикам программно перемещать фокус.
Вы также должны обратить особое внимание на раздел KeyboardNavigation, в котором рассматривается класс KeyboardNavigation
. Этот класс содержит некоторые свойства, которые позволяют вам определить, как работает клавиша Tab в разных сценариях, так что это может быть то, что вам нужно. Он используется как это (с последней связанной страницы в MSDN):
KeyboardNavigation.SetTabNavigation(navigationMenu, KeyboardNavigationMode.Cycle);
Для справок в будущем вы получите более быстрые и более точные ответы, если вы дадите четкие вопросы, которые включают все ваши требования во время публикации.
Вы пробовали смотреть на событие FocusLost - возможно, вам удастся переориентировать управление страницей с помощью обработчика событий.
private void Page_LostFocus(object sender, System.Windows.RoutedEventArgs e)
{
((UIElement)sender).Focus();
}
Focusable
в false для всех других элементов управления, кромеPage
, но тогда она не фокусируется на самойPage
. потому что он содержится в окне. 2. Динамически изменяяTabIndex
для всех других элементов управления заTabIndex
Page
. Это не работает, потому что TabIndex имеет значение в любом случае! 3. так больше, но у меня нет свободного английского, чтобы описать их.