C# 我的快捷键不是';行不通
我正在尝试为我的菜单项添加快捷方式,但它无法正常工作 这是我的菜单:C# 我的快捷键不是';行不通,c#,wpf,keyboard-shortcuts,menuitem,C#,Wpf,Keyboard Shortcuts,Menuitem,我正在尝试为我的菜单项添加快捷方式,但它无法正常工作 这是我的菜单: <MenuItem Name="openMenuItem" Header="Open file" InputGestureText="Ctrl+O" Command="{Binding OpenFile}"></MenuItem> 我做错了什么 这是我的菜单图片: 根据Nick at的说法:您需要添加代码使其响应快捷方式,如下所示: public Window1() { FilterComma
<MenuItem Name="openMenuItem" Header="Open file" InputGestureText="Ctrl+O" Command="{Binding OpenFile}"></MenuItem>
我做错了什么
这是我的菜单图片:
根据Nick at的说法:您需要添加代码使其响应快捷方式,如下所示:
public Window1()
{
FilterCommand.InputGestures.Add(new KeyGesture(Key.O, ModifierKeys.Control));
InitializeComponent();
}
根据Nick at的说法:您需要添加代码以使其响应快捷方式,如下所示:
public Window1()
{
FilterCommand.InputGestures.Add(new KeyGesture(Key.O, ModifierKeys.Control));
InitializeComponent();
}
有用于打开和关闭以及其他常用命令的预定义命令。看看: 你会有这样的想法:
<Menu DockPanel.Dock="Top">
<MenuItem Command="ApplicationCommands.Paste" Width="75" />
</Menu>
有用于打开和关闭以及其他常用命令的预定义命令。看看: 你会有这样的想法:
<Menu DockPanel.Dock="Top">
<MenuItem Command="ApplicationCommands.Paste" Width="75" />
</Menu>
针对您特别提出的问题: 我做错了什么 我指示您前往: 此属性不将输入手势与菜单项相关联;它只是将文本添加到菜单项中 它的行为符合设计
InputGestureText
仅在菜单项上显示一些文本;它不会改变行为,特别是,它实际上不会倾听那个关键的手势。这有点出乎意料,因为WinForms中的相应属性确实添加了行为,但它也由属性名称上的Text
后缀调用——这不是输入手势,只是显示的文本告诉用户输入手势。当您使用RoutedUICommand时,它会自动设置,但当您自己实现ICommand时,则由您自己设置InputGestureText
并聆听按键手势
你所做的错事是期望这个属性直观地表现出来。你不是唯一一个被这搞糊涂的人
(显而易见的后续问题是“如何为我的MVVM命令添加键盘快捷键”,但这是一个单独的问题——并且在StackOverflow上被多次询问和回答;一旦您知道这是正确的问题,您应该能够搜索现有的答案。)针对您特别提出的问题: 我做错了什么 我指示您前往: 此属性不将输入手势与菜单项相关联;它只是将文本添加到菜单项中 它的行为符合设计
InputGestureText
仅在菜单项上显示一些文本;它不会改变行为,特别是,它实际上不会倾听那个关键的手势。这有点出乎意料,因为WinForms中的相应属性确实添加了行为,但它也由属性名称上的Text
后缀调用——这不是输入手势,只是显示的文本告诉用户输入手势。当您使用RoutedUICommand时,它会自动设置,但当您自己实现ICommand时,则由您自己设置InputGestureText
并聆听按键手势
你所做的错事是期望这个属性直观地表现出来。你不是唯一一个被这搞糊涂的人
(显而易见的后续问题是“如何为我的MVVM命令添加键盘快捷键”,但这是一个单独的问题——在StackOverflow上被多次询问和回答;一旦你知道这是正确的问题,你应该能够搜索现有的答案。)当你说“它似乎不起作用”时,这是否意味着您会收到一条错误消息、一个异常、一条VS输出窗口中的消息,什么都没有?不。这意味着当我按ctrl+o时什么都没有发生,但当我用鼠标单击时菜单工作。当您说“它似乎不工作”时,这可能会有所帮助,这是否意味着您会收到一条错误消息、一个异常,VS输出窗口中有一条消息,没有?没有。这意味着当我按ctrl+o时没有发生任何事情,但当我用鼠标单击时菜单会工作。这可能会在该示例中很有帮助。他们使用RoutedCommand,但我绑定到ICommand。那我该怎么办?有没有一种方法可以将输入手势添加到
ICommand
,例如所谓的RelayCommand
或DelegateCommand
?在这个例子中,他们使用的是RoutedCommand,但我绑定到ICommand。那我该怎么办?有没有办法将输入手势添加到ICommand
,例如所谓的RelayCommand
或DelegateCommand
?