WPF のキーボードショートカット 質問する

WPF のキーボードショートカット 質問する

_の代わりにを使用することはわかっていますが、 + タイプのショートカット&をすべて調べています。Ctrl

Ctrl+Zで元に戻す、Ctrl+Sで保存など。

WPF アプリケーションでこれらを実装する「標準的な」方法はありますか? それとも、独自に作成して、任意のコマンド/コントロールに接続するのでしょうか?

ベストアンサー1

一つの方法は、コマンド自体にショートカットキーを追加することです。InputGesturesコマンドは次のように実装されますRoutedCommands

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


手順

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

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

     MyCommand.InputGestures.Add(new KeyGesture(Key.S, ModifierKeys.Control));
    
  3. 実行時に呼び出すメソッドを指すコマンド バインディングを作成します。これらを、それが機能する UI 要素 (ウィンドウなど) とメソッドのコマンド バインディングに配置します。

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

おすすめ記事