0

ユーザーが実行時にホットキーを変更できるようにしたいと考えています。

これを達成するためにcodebehind C#でキーをバインドする方法に関する具体的な例はありますか?

RoutedCommand でキーバインディングを行う必要があると思います。ホットキーで UI のボタンを押したいとします。

例... ユーザーが F5 を押してアプリの btnGo をクリックできるようにします。

4

1 に答える 1

0

コマンドの動作方法は、あなたの考えとは少し異なります。ボタンを押しても、アプリ内のボタンのクリックは発生しません。むしろ、コマンドを定義し (この場合、「Go」というコマンドを使用できます)、このコマンドをアプリケーション内のさまざまな要素 (メニュー項目、ボタンなど) に割り当てることができます。これらの項目はすべて、コマンドを起動し、コマンドには、コードを実行する「実行済み」機能があります。

CommandBindings をメイン ウィンドウに追加すると、ホットキーを使用してこれらのコマンドをグローバルに起動できます。次のようなコードを使用して、コマンド バインドを XAML に簡単に配置できます。

<Window.CommandBindings>
    <CommandBinding Command="local:MyCommands.Go" CanExecute="GoCanExecute" Executed="Go" />
</Window.CommandBindings>

独自のコマンドを作成するには、コードで "RoutedUICommand" を作成し、既定のメンバー (既定の名前、既定のキーバインドなど) を設定します。ほとんどの場合、それをクラスの静的プロパティにしたいと思うでしょう。

次に、このコマンドのキーバインドを変更または追加する場合は、この静的プロパティにアクセスして InputGestures コレクションを変更するだけです。必要に応じて、それをクリアし、新しいキー バインディングを追加し、変更することができます。

于 2012-06-04T18:41:56.560 に答える