4

基本的に、ウィンドウのスコープ内で有効であり、フォーカスがウィンドウをバインドするコントロール内にあるときに有効になるだけでなく、キーボードショートカットを作成したいと思います。

さらに詳細に....

3つのコントロールがあるウィンドウがあります。

  • ツールバー
  • テキストボックス
  • カスタムコントロール

ツールバーには、コマンドCustomCommands.CmdAにバインドされ、キーボードショートカットCtrl+にリンクされたボタンがありますT

私のカスタムコントロールはを処理できますCmdA。アプリを実行してカスタムコントロールをクリックすると、CmdA有効になり、正常に動作します。また、 Ctrl+Tはコマンドを起動させます。

ただし、テキストボックスを選択すると、カスタムコマンドCmdAが無効になります。

CmdAのボタンのコマンドターゲットを設定することで、これを修正できます。これで、textBoxを選択すると、CmdAまだ有効になっています。

しかし、キーボードショートカットCtrl+Tは何もしません。

キーボードショートカットの範囲を変更する簡単な方法はありますか?または、キーを下のどこかでキャッチし、それが関連するコマンドを見つけて自分でルーティングする必要があります(そうであれば、これを行うためのフレームワークがありますか?)

4

1 に答える 1

2

そのためには、通常、ウィンドウで入力バインディングを指定する必要があります。例:

 <Window.InputBindings>
        <KeyBinding Key="N" Modifiers="Control" Command="New"/>
        ...
 </Window.InputBindings>

組み込みのアプリケーションコマンド( )の場合は、ウィンドウにもRoutedCommands必要です。CommandBinding

<Window.CommandBindings>
        <CommandBinding Command="New" Executed="CommandBinding_Executed" />
        ...
</Window.CommandBindings>
于 2011-01-09T21:02:03.390 に答える