Панель инструментов WPF не передает фокус следующему элементу управления клавишей Tab - PullRequest
10 голосов
/ 16 марта 2011

Я создал простое приложение WPF с TextBox и панелью инструментов, содержащей две кнопки.

Когда я щелкаю текстовое поле и нажимаю клавишу табуляции, фокус ввода перемещается на первую кнопку панели инструментов. Повторное нажатие вкладки перемещает ввод к следующей кнопке вкладки. Все идет нормально. Но повторное нажатие вкладки перемещает фокус ввода на первую кнопку панели инструментов, где он должен быть перемещен в текстовое поле.

Поэтому, когда панель инструментов получает фокус ввода, она остается там, и вы не можете переместить фокус, кроме как с помощью мыши.

Почему? И как я могу исправить это?

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication1.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="640" Height="480">

    <StackPanel x:Name="LayoutRoot">
        <ToolBar VerticalAlignment="Top">
            <Button Content="Test1" />
            <Button Content="Test2" />
        </ToolBar>
        <TextBox />
    </StackPanel>
</Window>

1 Ответ

16 голосов
/ 16 марта 2011

Решение довольно простое, вам просто нужно добавить KeyboardNavigation.TabNavigation="Continue" на панель инструментов. Затем фокус снова возвращается в TextBox.

...