【问题标题】:WPF: The toolbar is a keyboard trapWPF:工具栏是键盘陷阱
【发布时间】:2019-01-05 15:06:29
【问题描述】:

我有以下 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 键离开工具栏。我能做些什么呢?

【问题讨论】:

    标签: wpf keyboard toolbar


    【解决方案1】:

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

    这是关于不同枚举值的 MS 链接 - KeyboardNavigationMode Enum

    【讨论】:

    • 你太棒了!有用。非常感谢。
    • WPF 非常大,学习曲线陡峭。有很多这样的属性埋在那里。祝你好运!
    猜你喜欢
    • 2012-05-31
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多