WPFショートカットキー(フォーム)

オリジナル: WPFショートカットキー(フォーム)

序: 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リフレッシュなどの潜在的な操作を実行できます。

リンクを転送してソースを示してください。

おすすめ

転載: www.cnblogs.com/lonelyxmas/p/12730277.html