2012-04-10 76 views
0

下面是我试图为菜单项分配快捷方式。当我点击菜单项时效果很好,但快捷方式不起作用。任何想法?菜单项快捷方式

<Window.CommandBindings> 
    <CommandBinding Command="ApplicationCommands.Save" Executed="MyCommand" /> 
</Window.CommandBindings> 

<Window.InputBindings> 
    <KeyBinding Key="S" Modifiers="Control" Command="ApplicationCommands.Save"/> 
</Window.InputBindings> 

<MenuItem Header="Save" Name="MainMenu_File_Save" Command="ApplicationCommands.Save"> 
    <MenuItem.Icon> 
     <Image Height="16" Width="16" Source="/NewGUI_WPF;component/Images/saveHS.png" /> 
    </MenuItem.Icon> 
</MenuItem> 

private void MyCommand(object sender, ExecutedRoutedEventArgs e) {...} 
+0

伟大的问题。它已经在这里回答http://stackoverflow.com/questions/4682915/defining-menuitem-shortcuts – 2012-04-10 18:16:01

+0

我知道这个链接。但我仍然无法找到我的错误。 – Shibli 2012-04-10 18:28:45

+0

你可以将整个xaml和代码放在后面吗?至于我一切正常。也许其他内部使用相同的命令? – 2012-04-10 18:52:17

回答

0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace test 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 

     private void MyCommand(object sender, ExecutedRoutedEventArgs e) 
     { 
      MessageBox.Show("Test"); 
     } 
    } 
} 

<Window x:Class="test.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.CommandBindings> 
    <CommandBinding Command="ApplicationCommands.Save" Executed="MyCommand" /> 
    </Window.CommandBindings> 

    <Window.InputBindings> 
    <KeyBinding Key="S" Modifiers="Control" Command="ApplicationCommands.Save"/> 
    </Window.InputBindings> 

    <Grid> 
    <Menu IsMainMenu="True"> 
    <MenuItem Header="_File"> 
     <MenuItem Header="Save" Name="MainMenu_File_Save" Command="ApplicationCommands.Save" /> 
    </MenuItem> 
    </Menu> 
    </Grid> 
</Window> 

这对我的作品。对你起作用吗 ?

+0

当我点击父母菜单,然后快捷方式它的作品,但没有其他。 – Shibli 2012-04-10 19:51:01

+0

我修改过的示例,它仍然有效。应用程序的窗口是否被激活? – 2012-04-10 20:16:47

+0

问题是否只存在于菜单中的xaml中? – 2012-04-10 20:24:38

相关问题