将快捷键分配给WPF中的按钮

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

如何将快捷键分配给WPF中的按钮?

谷歌搜索给我的答案是在标准Winforms中添加_而不是'&'。

所以在我做完以下之后:

<Button Name="btnHelp" Content="_Help"></Button> 

我没有找到'H'的下划线。

这是第一个问题。

第二个问题是,如何在运行时按下Alt + H后执行该操作。举例来说,仅仅为了显示消息框就足够了。

我正在使用C#,WPF

提问于
用户回答回答于

我发现最简单的解决方案就是为按钮的内容使用AccessText元素。

<Button Command="{Binding SomeCommand}">
    <AccessText>_Help</AccessText>
</Button>

当您按下Alt键时,按钮上的下划线将会显示'H'。 当按下组合键Alt + H时,将执行绑定到该按钮的命令。

http://social.msdn.microsoft.com/Forums/vstudio/en-US/49c0e8e9-07ac-4371-b21c-3b30abf85e0b/button-hotkeys?forum=wpf

用户回答回答于

使用自己的命令进行键绑定(+按钮绑定)的解决方案:

XAML文件的主体:

<Window.Resources>
    <RoutedUICommand x:Key="MyCommand1" Text="Text" />
    <RoutedUICommand x:Key="MyCommand2" Text="Another Text" />
</Window.Resources>

<Window.CommandBindings>
    <CommandBinding Command="{StaticResource MyCommand1}" 
                    Executed="FirstMethod" />
    <CommandBinding Command="{StaticResource MyCommand2}" 
                    Executed="SecondMethod" />
</Window.CommandBindings>

<Window.InputBindings>
    <KeyBinding Key="Z" Modifiers="Ctrl" Command="{StaticResource MyCommand1}" />
    <KeyBinding Key="H" Modifiers="Alt" Command="{StaticResource MyCommand2}" />
</Window.InputBindings>

<Grid>
    <Button x:Name="btn1" Command="{StaticResource MyCommand1}" Content="Click me" />
    <Button x:Name="btn2" Command="{StaticResource MyCommand2}" Content="Click me" />
</Grid>

和.CS文件:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }

    public void FirstMethod(Object sender, ExecutedRoutedEventArgs e)
    {
        // btn1
    }

    public void SecondMethod(Object sender, ExecutedRoutedEventArgs e)
    {
        // btn2
    }
}

扫码关注云+社区

领取腾讯云代金券