WPF:工具栏是一个键盘陷阱

时间:2018-07-28 22:36:41

标签: wpf keyboard toolbar

我有以下XAML代码:

<ToolBarTray DockPanel.Dock="Top">
            <ToolBar VerticalAlignment="Top">
                <ComboBox  x:Name="ComboboxFontname" ToolTip="Auswahlliste um Schriftart festzulegen" ItemsSource="{x:Static Fonts.SystemFontFamilies}" SelectedIndex="0" Width="200" GotFocus="ComboBox_GotFocus" LostFocus="ComboBox_LostFocus"/>
                <ComboBox  x:Name="ComboboxFontsize" ToolTip="Auswahlliste um Schriftgröße festzulegen" SelectedIndex="0" Width="45" GotFocus="ComboBox_GotFocus" LostFocus="ComboBox_LostFocus">
                    <ComboBoxItem Content="12"/>
                    <ComboBoxItem Content="14"/>
                    <ComboBoxItem Content="16"/>
                    <ComboBoxItem Content="18"/>
                    <ComboBoxItem Content="20"/>
                    <ComboBoxItem Content="22"/>
                    <ComboBoxItem Content="24"/>
                    <ComboBoxItem Content="26"/>
                    <ComboBoxItem Content="28"/>
                </ComboBox>
                <Label Name="lblSuchen"  Content="_Suchen" Target="{Binding ElementName=edtSuchen}"/>
                <TextBox Name="edtSuchen" Width="150" ToolTip="Bitte Suchbegriff eingeben. Suche Starten mit der Enter-Taste" KeyDown="edtSuchen_KeyPress" GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/>
                <Label Name="lblErsetzen" Content="_Ersetzen"  Target="{Binding ElementName=edtErsetzen}"/>
                <TextBox Name="edtErsetzen" Width="150" ToolTip="Bitte Begriff eingeben, durch den der Suchbegriff ersetzt werden soll. Ersetzen Starten mit der Enter-Taste" KeyDown="edtErsetzen_KeyPress" GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus" IsTabStop="True" TabIndex="3" />
                <Grid>
                    <CheckBox Name="ChkBarrierefrei" Content="Editor ba_rrierefrei"   Margin="10" Click="ChkBarrierefrei_CheckedChanged" IsTabStop="True" TabIndex="4"/>
                </Grid>
            </ToolBar>
        </ToolBarTray>
        <TextBox Name="TBXEditor" DockPanel.Dock="Top" MinWidth="525" MinHeight="240"  AcceptsReturn="True" FontSize="{Binding Path=SelectedValue.Content, ElementName=ComboboxFontsize}" FontFamily="{Binding Path=SelectedValue, ElementName=ComboboxFontname}" IsTabStop="True" TabIndex="5" GotFocus="TBXEditorBox_GotFocus" LostFocus="TBXEditorBox_LostFocus">
        </TextBox>

如果复选框“ ChkBarrierefrei”具有焦点,并且我按了制表键,则文本框“ TBXEditor”不会获得焦点,而是组合框“ ComboboxFontname”。这意味着我无法使用Tab键离开工具栏。我该怎么办?

1 个答案:

答案 0 :(得分:0)

尝试设置ToolBarTray和/或ToolBar KeyboardNavigation.TabNavigation="Continue"。当您按下Tab键时,TextBox控件现在应该在上一个CheckBox之后获得焦点。

以下是有关不同枚举值的MS链接-KeyboardNavigationMode Enum