1

我是 WPF 的新手,所以我可能会遗漏一些东西。我的 MainWindow 类中有一个名为 StartService 的简单函数。我想在我的应用程序中添加一个带有快捷键 Ctrl+S 的菜单项“启动服务”。我必须执行以下操作:

  1. 在我的 MainWindow 类中,我必须定义:

    public static RoutedCommand StartServiceRoutedCmd = new RoutedCommand();

  2. 在我的 XAML 代码中,我添加了:

<MenuItem Header="_Start Service" InputGestureText="Ctrl+S" Click="OnStartService" />

<Window.CommandBindings>
    <CommandBinding Command="{x:Static loc:MainWindow.StartServiceRoutedCmd}" 
                    Executed="OnStartService" />
</Window.CommandBindings>

<Window.InputBindings>
    <KeyBinding Command="loc:MainWindow.StartServiceRoutedCmd" Gesture="CTRL+S" />
</Window.InputBindings>

事情正在奏效。我想知道这是否是正确且有组织的方式?我需要一个 StopService 功能的快捷方式。这是否意味着我需要为我需要的每个快捷方式定义一个新的 RoutedCommand StopServiceRoutedCmd 等等?

4

1 回答 1

2
<MenuItem Header="_Start Service" InputGestureText="Ctrl+S" Command="loc:MainWindow.StartServiceRoutedCmd />

<Window.CommandBindings>
       <CommandBinding Command="{x:Static loc:MainWindow.StartServiceRoutedCmd}" 
                Executed="OnStartService" />
       </Window.CommandBindings>

<Window.InputBindings>
       <KeyBinding Command="loc:MainWindow.StartServiceRoutedCmd" Gesture="CTRL+S" />
</Window.InputBindings>
于 2010-10-17T08:59:38.100 回答