Когда вы показываете UserControl
, вы можете запустить модификацию макета, установив IsTabStop
свойство зависимости в false для элементов, присутствующих в фоновом режиме.
Либо это, либо вы также можете отключить элементы в фоновом режиме, но это также изменит внешний вид элементов управления, что может быть нежелательно для ваших конкретных намерений.
- ВВ случае, если существует множество элементов, для которых
IsTabStop
должно быть установлено значение false, вместо определения атрибута идентификатора с помощью x:Name
и необходимости ссылаться на каждый из них в коде позади, я бы предложил выполнить цикл по макету * 1012.* свойство зависимостей и измените свойства элементов управления таким образом.
Обновление:
Я неправильно понял ваше требование.После перечитывания я понимаю, каковы ваши цели, и, кажется, они достижимы на основе документации!
Взглянув на Tab Navigation здесь и Control Group документация, указано, что вы можете настроить навигацию управления, используя следующие свойства API:
XYFocusKeyboardNavigation
включает навигацию по клавишам со стрелками между элементами управления
TabFocusNavigation
указывает, есть ли несколько остановок табуляции или одна остановка табуляции
FindFirstFocusableElement
и FindLastFocusableElement
фокусируется на первом элементе с помощью клавиши Home и последнем элементе с помощью клавиши End
. Взглянув на шаблон, мы видим следующее VisualState
, определенное для ContentDialog
:
<VisualState x:Name="DialogShowing">
<VisualState.Setters>
<Setter Target="LayoutRoot.Visibility" Value="Visible" />
<Setter Target="BackgroundElement.TabFocusNavigation" Value="Cycle" />
</VisualState.Setters>
</VisualState>
Это визуальное состояние возникает, когда отображается диалоговое окно, и оно устанавливает свойство зависимости TabFocusNavigation
в Цикл , что означает, что все дочерние элементы получат фокус один раз, и навигация по вкладке будет зациклена, пока свойствоустановить этот путь.
В приведенных выше ссылках документация великолепна, и для каждого возможного значения, которое можно установить для TabFocusNavigation
, есть графическое представление.
Причина, по которой ваш UserControl
не работал должным образом, заключается в том, что его поведение при навигации соответствует соглашениям для сценария Local .