1. ホーム
  2. wpf

[解決済み] WPFのキーボードショートカット

2022-06-17 13:06:05

質問

を使うことは知っています。 _ の代わりに & を使うようになりましたが、すべての Ctrl + 型のショートカットを使用しています。

Ctrl + Z をアンドゥに使用します。 Ctrl + S で保存など。

WPF アプリケーションでこれらを実装するための「標準的な」方法はありますか。それとも、自分で作って、どんなコマンドやコントロールにも配線するケースでしょうか?

どのように解決するのですか?

コマンドにショートカットキーを追加する方法です。 InputGestures . コマンドの実装は RoutedCommands .

これにより、ショートカットキーがどのコントロールにも接続されていない場合でも、ショートカットキーが動作するようになります。また、メニュー項目はキーボード ジェスチャを理解するので、そのコマンドをメニュー項目にフックすると、メニュー項目のテキストにショートカット キーが自動的に表示されます。


ステップ

  1. コマンドを保持する静的属性を作成します(できればコマンド用に作成した静的クラスのプロパティとして使用するのが望ましいですが、簡単な例ではwindow.csで静的属性を使用するだけです)。

     public static RoutedCommand MyCommand = new RoutedCommand();
    
    
  2. メソッドを呼び出すためのショートカットキーを追加します。

     MyCommand.InputGestures.Add(new KeyGesture(Key.S, ModifierKeys.Control));
    
    
  3. execute時に呼び出すメソッドを指し示すコマンドバインディングを作成します。これを、それが動作すべきUI要素(例えば、ウィンドウ)とメソッドのコマンドバインディングに入れます。

     <Window.CommandBindings>
         <CommandBinding Command="{x:Static local:MyWindow.MyCommand}" 
                         Executed="MyCommandExecuted"/>
     </Window.CommandBindings>
    
     private void MyCommandExecuted(object sender, ExecutedRoutedEventArgs e) 
     { ... }