ユーザーが実行時にホットキーを変更できるようにしたいと考えています。
これを達成するためにcodebehind C#でキーをバインドする方法に関する具体的な例はありますか?
RoutedCommand でキーバインディングを行う必要があると思います。ホットキーで UI のボタンを押したいとします。
例... ユーザーが F5 を押してアプリの btnGo をクリックできるようにします。
ユーザーが実行時にホットキーを変更できるようにしたいと考えています。
これを達成するためにcodebehind C#でキーをバインドする方法に関する具体的な例はありますか?
RoutedCommand でキーバインディングを行う必要があると思います。ホットキーで UI のボタンを押したいとします。
例... ユーザーが F5 を押してアプリの btnGo をクリックできるようにします。
コマンドの動作方法は、あなたの考えとは少し異なります。ボタンを押しても、アプリ内のボタンのクリックは発生しません。むしろ、コマンドを定義し (この場合、「Go」というコマンドを使用できます)、このコマンドをアプリケーション内のさまざまな要素 (メニュー項目、ボタンなど) に割り当てることができます。これらの項目はすべて、コマンドを起動し、コマンドには、コードを実行する「実行済み」機能があります。
CommandBindings をメイン ウィンドウに追加すると、ホットキーを使用してこれらのコマンドをグローバルに起動できます。次のようなコードを使用して、コマンド バインドを XAML に簡単に配置できます。
<Window.CommandBindings>
<CommandBinding Command="local:MyCommands.Go" CanExecute="GoCanExecute" Executed="Go" />
</Window.CommandBindings>
独自のコマンドを作成するには、コードで "RoutedUICommand" を作成し、既定のメンバー (既定の名前、既定のキーバインドなど) を設定します。ほとんどの場合、それをクラスの静的プロパティにしたいと思うでしょう。
次に、このコマンドのキーバインドを変更または追加する場合は、この静的プロパティにアクセスして InputGestures コレクションを変更するだけです。必要に応じて、それをクリアし、新しいキー バインディングを追加し、変更することができます。