组合框打开的Alt <key>快捷键</key>

时间:2013-04-13 19:53:45

标签: wpf keyboard-shortcuts

我们假设我们有以下XAML:

    <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center">

        <Button Content="_Test" Margin="12" Width="200" Height="30" Click="OnClick" />

        <ComboBox Margin="12" Width="200" Height="30" >
            <ComboBox.Items>
                <ComboBoxItem>First</ComboBoxItem>
                <ComboBoxItem>Second</ComboBoxItem>
                <ComboBoxItem>Third</ComboBoxItem>
            </ComboBox.Items>
        </ComboBox>
    </StackPanel>

Alt + T快捷键将按下按钮。如何使用Alt + R快捷键打开组合框下拉列表?

更新: BTW,我知道Label的Target属性,我知道我可以创建KeyBinding(或类似的东西)并处理例如Ctrl + R,但我正在寻找更多简单的方法。

1 个答案:

答案 0 :(得分:1)

我找到了以下解决方案。不像我预期的那么简单,但我可以忍受它。

首先,我需要指定ComboBox的名称:

    <ComboBox x:Name="ResourcesComboBox" Margin="12" Width="200" Height="30" >
        <ComboBox.Items>
            <ComboBoxItem>First</ComboBoxItem>
            <ComboBoxItem>Second</ComboBoxItem>
            <ComboBoxItem>Third</ComboBoxItem>
        </ComboBox.Items>
    </ComboBox>

其次,在视图构造函数中注册访问键'R'并在事件处理程序中打开ComboBox:

    public MainView()
    {
        InitializeComponent();

        AccessKeyManager.Register("R", ResourcesComboBox);
        AccessKeyManager.AddAccessKeyPressedHandler(ResourcesComboBox, AccessKeyPressedEventHandler);
    }

    //...

    private void AccessKeyPressedEventHandler(object sender, AccessKeyPressedEventArgs e)
    {
        ResourcesComboBox.IsDropDownOpen = true;
    }