WPF меню с ярлыками и пользовательским RoutedCommand - PullRequest
1 голос
/ 15 июня 2010

Я новичок в WPF, поэтому я могу что-то упустить.В моем классе MainWindow есть простая функция StartService.Я хотел добавить пункт меню «Запуск службы» с помощью сочетания клавиш Ctrl + S в моем приложении.Мне пришлось сделать следующее:

  1. В моем классе MainWindow мне нужно было определить:

    public static RoutedCommand StartServiceRoutedCmd = new RoutedCommand();

  2. InЯ добавил свой код 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 и т. Д. Для каждого ярлыка, который мне нужен?

1 Ответ

2 голосов
/ 17 октября 2010
<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>
...