2016-11-08 5 views
1

InputGestureTextをコードの背後から設定することができません。 ショートカットキーは正常に機能しますが、キーストリングはメニュー項目には表示されません。InputGestureTextをコードの後ろから設定できません

XAMLコードとC#コードは以下のとおりです。

環境: VS2012 &の.NET Framework 4.5

私が行方不明です何を任意のアイデア?

//******************** 
//XAML 
//******************** 
     <DockPanel Grid.Row="0" Grid.ColumnSpan="2"> 
      <Menu DockPanel.Dock="Top" Background="White"> 
       <MenuItem x:Name="mnuFile" Header="_File"> 
        <MenuItem x:Name="mnuFileNew" Header="_New..." /> 
        <MenuItem x:Name="mnuFileOpen" Header="_Open for Editing..." /> 
        <Separator /> 
        <MenuItem x:Name="mnuFileExit" Header="E_xit" /> 
       </MenuItem> 
      </Menu> 
     </DockPanel> 
//******************** 


//******************** 
//Code Behind 
//******************** 

public MainWindow() 
{ 
    InitializeComponent(); 

    //File > New 
    mnuFileNew.Click += mnuFileNew_Click; 
    RoutedCommand cmdNewReport = new RoutedCommand(); 
    cmdNewReport.InputGestures.Add(new KeyGesture(Key.N, ModifierKeys.Control | ModifierKeys.Shift, "Ctrl+Shift+N")); 
    CommandBindings.Add(new CommandBinding(cmdNewReport, mnuFileNew_Click)); 
} 

void mnuFileNew_Click(object sender, RoutedEventArgs e) 
{ 
    MessageBox.Show("New Report not implemented!", this.Title, MessageBoxButton.OK, MessageBoxImage.Information); 
} 
//******************** 

答えて

0

あなたが背後にあるコードを使用する場合は、ショートカットを表示するには、これを使用してみてください:

mnuFileNew.Click += mnuFileNew_Click; 
RoutedCommand cmdNewReport = new RoutedCommand(); 

var keyGesture = new KeyGesture(Key.N, ModifierKeys.Control | ModifierKeys.Shift, "Ctrl+Shift+N"); 
cmdNewReport.InputGestures.Add(keyGesture); 
mnuFileNew.InputGestureText = keyGesture.DisplayString; 

CommandBindings.Add(new CommandBinding(cmdNewReport, mnuFileNew_Click)); 
+0

そして、それは働きます!ありがとうございました。 – Ashish

関連する問題