如何在WPF中为按钮分配快捷键?Google给了我答案,在标准的Winforms中用append _代替'&'。所以在我做了如下操作之后:
<Button Name="btnHelp" Content="_Help"></Button>
我没有发现H的下划线。这是首要问题。第二个问题是,在运行时按Alt + H后如何执行。对于示例来说,只显示一个消息框就足够了。我用的是C#,WPF谢谢。
fykwrbwg1#
这是一个古老的问题,但我今天遇到了同样的问题。我发现最简单的解决方案是对按钮的内容使用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
uinbv5nw2#
使用自己的命令进行键绑定(+按钮绑定)的解决方案: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 } }
a0zr77ik3#
示例代码的快捷方式是h在Windows XP中,进入显示属性-〉外观-〉效果,你会看到一个标有“隐藏键盘导航的下划线字母,直到我按下Alt键”的复选框。对于Vista/Win7,我认为他们把这个设置移到了其他地方。
57hvy0tb4#
我发现的最简单的解决方案是在按钮内粘贴标签:
<Button Name="btnHelp"><Label>_Help</Label></Button>
z31licg05#
要绑定 * 键盘手势,* 您需要使用 KeyGestures 和commands。查看commands了解更多信息。此外,还有大量可以直接在应用程序中使用的预定义命令(如剪切,复制,粘贴,帮助,属性等)。
epfja78i6#
这有点老了,但我今天遇到了同样的问题。我发现最简单的解决方案是只使用一个隐藏的元素作为快捷键。
<Button x:Name="b2" Click="Button_Click"> <Button.Content> <StackPanel Orientation="Horizontal"> <Label Width="0" Height="0">_H</Label> <TextBlock> <Underline>H</Underline>elp </TextBlock> </StackPanel> </Button.Content> </Button>
6条答案
按热度按时间fykwrbwg1#
这是一个古老的问题,但我今天遇到了同样的问题。
我发现最简单的解决方案是对按钮的内容使用AccessText元素。
当您按下 Alt 键时,按钮上的“H”将加下划线。
当您按下组合键 Alt+H 时,将执行绑定到按钮的命令。
http://social.msdn.microsoft.com/Forums/vstudio/en-US/49c0e8e9-07ac-4371-b21c-3b30abf85e0b/button-hotkeys?forum=wpf
uinbv5nw2#
使用自己的命令进行键绑定(+按钮绑定)的解决方案:
XAML文件的主体:
和.CS文件:
a0zr77ik3#
示例代码的快捷方式是h
在Windows XP中,进入显示属性-〉外观-〉效果,你会看到一个标有“隐藏键盘导航的下划线字母,直到我按下Alt键”的复选框。对于Vista/Win7,我认为他们把这个设置移到了其他地方。
57hvy0tb4#
我发现的最简单的解决方案是在按钮内粘贴标签:
z31licg05#
要绑定 * 键盘手势,* 您需要使用 KeyGestures 和commands。查看commands了解更多信息。此外,还有大量可以直接在应用程序中使用的预定义命令(如剪切,复制,粘贴,帮助,属性等)。
epfja78i6#
这有点老了,但我今天遇到了同样的问题。我发现最简单的解决方案是只使用一个隐藏的元素作为快捷键。