我无法从后面的代码中设置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 :(得分: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));