2012-04-10 10 views
0

Unten ist, was ich versucht habe, eine Verknüpfung für einen Menüpunkt zu vergeben. Wenn ich auf Menüpunkt klicke, funktioniert es gut, aber Abkürzung funktioniert nicht. Irgendeine Idee?Menüpunkt Shortcut

<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

Große Frage. Es wurde bereits hier beantwortet http://stackoverflow.com/questions/4682915/defining-menuitem-shortcuts –

+0

Ich kenne diesen Link. Aber trotzdem kann ich meinen Fehler nicht finden. – Shibli

+0

Kannst du den gesamten XAML und Code hinterher posten? Für mich funktioniert alles gut. Wahrscheinlich verwendet etwas anderes im Inneren den gleichen Befehl? –

Antwort

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> 

Das funktioniert für mich. Funktioniert es für Sie?

+0

Wenn ich auf das übergeordnete Menü klicke und dann die Verknüpfung funktioniert, aber nicht anders. – Shibli

+0

ich modifizierte Probe und es funktioniert immer noch. Ist das Fenster der Anwendung aktiviert? –

+0

Besteht das Problem weiterhin bei XAML, wo nur das Menü delcared ist? –