2014-01-17 2 views
1

Теперь представьте, что у меня есть десять элементов управления, связанных внутри stackpanel.WPF как управлять порядком вкладок путем установки индекса?

По умолчанию при нажатии TAB, фокус будет перемещаться от управления 1 затем контролировать 10. Теперь я хочу, после фокуса, движущегося от control 1 к control 2, когда пользователь нажимает кнопку TAB снова в центре внимания будет идти назад к control 1. Пока я могу только обходиться с последовательностью, используя KeyboardNavigation.TabIndex="N" where N = "0,1,2,3,..", но в конечном итоге я хочу пропустить оставшиеся 8 элементов управления.

Пожалуйста, не предполагают TabNavigation = «NONE» или IsTabStop = «False», чтобы пропустить контроль, я не хочу связываться с другими элементами управления и да, я в порядке с последовательностью жёстко.

ответ

1

Переопределите событие предварительного просмотра на элементах управления, которые вы хотите контролировать, и если их вкладка сделает то, что вы хотите.

Вот пример, если бы это было что-то вроде текстового поля, вы могли бы использовать что-то вроде этого. Атаковать обработчики событий либо в C#, либо в xaml.

btn1.PreviewKeyDown += new KeyEventHandler(btn1_KeyDown); 
btn2.PreviewKeyDown += new KeyEventHandler(btn2_KeyDown); 

затем

private void btn1_KeyDown(object sender, KeyEventArgs e) 
{ 

    if (e.Key == Key.Tab && (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))) 
    { 
     //do what you want when shift+tab is pressed. 
     e.Handled = true; 
    } 
    else 
    { 
     btn2.Focus(); 
     e.Handled = true; 
    } 

} 

private void btn2_KeyDown(object sender, KeyEventArgs e) 
{ 

    if (e.Key == Key.Tab && (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))) 
    { 
     //do what you want when shift+tab is pressed. 
     e.Handled = true; 
    } 
    else 
    { 
     btn1.Focus(); 
     e.Handled = true; 
    } 

} 
+0

@IsaacLem я добавил пример. –

+0

Основная часть: я не знаю, как переместить фокус на управление 1. И все десять элементов управления на самом деле кнопки. –

+0

@ IsaacLem Я добавил пример. Дайте мне знать, если это поможет. –

Смежные вопросы