序: WPFプロジェクトの開発中にショートカットキーを使用する必要が生じたため、ホットキーについて簡単に調べましたが、この領域にはリソースがほとんどありません。。。
ホットキーは大きく3つのシナリオに分けられます。次の例ではQQを使用しています。
グローバルホットキー: QQ Ctrl + Alt + Aスクリーンショット。
フォーカスホットキー: Shift + QQメッセージバーにテキストを入力します。
ウィンドウのホットキー: Alt + F4で QQウィンドウを閉じます。
WPFでの間でグローバルなホットキーやフォーカスホットキーすることができ、容易に達成私は説明するために、フォームのホットキーを次のです。
最初のステップ:右プロジェクトルートディレクトリの参照 - >管理Nugetパッケージ- >検索NHotkey.Wpfとダウンロードしてインストール
登録コマンドをWindowに追加することをお勧めします(ホットキーは、マウスがPageとUserControlでフォーカスをクリックした後にトリガーされる必要があります)さらに面倒ではなく、コードを参照してください:
XAML中:
< Window.Resources > < RoutedUICommand x:Key = "WinKeyDown" Text = "F1" /> <!- WinKeyDownは静的リソース名で、F1はバックグラウンド受信に使用されるホットキーのシノニムです(必要に応じて)- > </ Window.Resources > < Window.InputBindings > < KeyBinding Gesture = "F1" Command = " {StaticResource WinKeyDown} " HotkeyManager.RegisterGlobalHotkey = "True" /> <!- F1はキーボードのホットキーであり、HotkeyManagerのコアプロパティです.RegisterGlobalHotkey = "true"結合してフォーカスなしでホットキーをトリガーすると、グローバルホットキーは発生しません- > </ Window.InputBindings > <Window.CommandBindings > < CommandBinding Command = " {StaticResource WinKeyDown} " CanExecute = "CommandBinding_CanExecute" /> <!- CanExecute触消イベント-> </ Window.CommandBindings >
バックグラウンドコード:
// Window体热键 private void CommandBinding_CanExecute(object sender、CanExecuteRoutedEventArgs e) { switch (((System.Windows.Input.RoutedUICommand)e.Command).Text) { case " F1 " : MessageBox.Show(" deep dark fantasy " ); 休憩; デフォルト: 返す; } }
これで、アプリケーションにフォーカスがない場合でも、ホットキーバインドコマンドが呼び出されます。
Ctrl + S保存、F5リフレッシュなどの潜在的な操作を実行できます。
リンクを転送してソースを示してください。