设置没有随附标签的 TextBox AccessText

Set TextBox AccessText without an accompanying Label

我在用户控件中有一系列没有附带标签的文本框。 我需要为用户提供一种按 Alt+(某些键)将焦点设置到每个文本框的方法。

如果我想使用内置的 WPF "AccessText" 方法来执行此操作,我需要在每个文本框旁边放置一个标签,并在快捷键前使用“_”字符指定内容, 并将每个标签的 "Target" 属性 指定到各自的文本框。

不幸的是,在这种情况下,每个文本框都没有标签,以后也不会有。

是否可以在没有标签的情况下为文本框指定 AccessText 快捷键?

您可以处理按键组合按下,然后将焦点放在 TextBox 上:

*.xaml:

<UserControl Loaded="UserControl_Loaded">
    <Grid>
        <StackPanel>
            <TextBox Height="30" x:Name="txt1"/>
            <TextBox Height="30" x:Name="txt2"/>
        </StackPanel>
    </Grid>
</UserControl>

*.cs

    public UserControl()
    {
        InitializeComponent();
    }

    private void KeyDownEvent(object sender, KeyEventArgs e)
    {
        bool x = Keyboard.IsKeyDown(Key.System);
        if (Keyboard.IsKeyDown(Key.System) && Keyboard.IsKeyDown(Key.B))// Alt+B
        {
            txt2.Focusable = true;
            txt2.Focus();
        }
    }

    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        var window = Window.GetWindow(this);
        window.KeyDown += KeyDownEvent;
        txt1.Focusable = true;
        txt1.Focus();
    }
}