TabControl возвращается к первой вкладке.Можно ли это предотвратить? - PullRequest
0 голосов
/ 18 января 2012

Когда WPF TabControl имеет фокус, клавиши со стрелками могут использоваться для переключения активной вкладки. Однако после того, как я дошел до последней вкладки, она снова возвращается к первой вкладке. Я хотел бы предотвратить это, чтобы пользователи чувствовали себя в приложении как «должно быть сделано в этом порядке». Есть идеи? Спасибо.

Ответы [ 3 ]

0 голосов
/ 19 января 2012

Вы пытались установить для присоединенного свойства KeyboardNavigation.DirectionalNavigation на TabControl значение Once?

0 голосов
/ 19 января 2012

Я попробовал этот довольно сложный подход, используя событие SelectionChanged.Он выполняет свою работу, за исключением того, что индикатор фокуса пунктирной линии по-прежнему отображается в записи loginTab, даже если TabControl продолжает отображать «lastTab», как и предполагалось.Вызов Focus () не сохраняет фокус на последней вкладке.

    private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.Source == wizardTabs && e.RemovedItems.Count != 0 && e.AddedItems.Count != 0)
        {
            TabItem fromItem = e.RemovedItems[0] as TabItem;
            TabItem toItem = e.AddedItems[0] as TabItem;

            if (fromItem.Name == "lastTab" && toItem.Name == "firstTab")
            {
                e.Handled = true;
                wizardTabs.SelectedItem = fromItem;
                fromItem.Focus();
            }
        }
    }
0 голосов
/ 18 января 2012

Если шаги необходимо выполнить в определенном порядке, не используйте вкладку.

В этой ситуации вам, вероятно, следует использовать интерфейс мастера.

Если, с другой стороны, шаги не нужно выполнять в определенном порядке, я не знаю, почему вы хотели бы создать у пользователей такое впечатление.

...