基本的な使い方 |
このトピックでは、ショートカットコマンドの基本的な使用方法について解説します。
ショートカットコマンドは、特定のアクション(クリップボードへコピー、挿入/上書きの切り替え など)を実行するためのコマンドで、特定のキー入力と関連付けて使用します。ユーザーか関連付けられたキー(ショートカットキー)を押すことにより、対応するコマンドのアクションを実行することができます。
InputMan for WPF のコマンドは、RoutedCommand クラスを継承して定義されており、標準で用意されているコマンドと同様、KeyBinding オブジェクトを使用して特定のキーにコマンドを関連付けることができます。
メモ |
---|
定義済みショートカットコマンドの一覧については、「定義済みショートカットコマンド一覧」を参照してください。 |
以下のサンプルコードは、標準の TextBox コントロールに対して、[Enter] キーもしくは [Shift]+[Enter] キーが押されたときに次または前のコントロールへフォーカスを移動する機能を追加します。2番目の TextBox コントロールにフォーカスを移動し、[Enter] キーを押すと次(3番目)の TextBox コントロールへ、[Shift] キーを押しながら [Enter] キーを押すと前(1番目)の TextBox コントロールへ、それぞれフォーカスが移動します。
<StackPanel> <TextBox /> <TextBox> <TextBox.InputBindings> <KeyBinding Key="Enter" Command="im:ControlNavigationCommands.NextControl"/> <KeyBinding Key="Enter" Modifiers="Shift" Command="im:ControlNavigationCommands.PreviousControl"/> </TextBox.InputBindings> </TextBox> <TextBox /> </StackPanel>
また、InputBindingHelper クラスを使用することで、リソースによって複数のコントロールに対して InputBindings を設定できます。
以下のサンプルコードは、StackPanel 上のすべての TextBox コントロールに対して同じショートカットコマンドを追加します。
<StackPanel> <StackPanel.Resources> <Style TargetType="TextBox"> <Setter Property="im:InputBindingHelper.InputBindings"> <Setter.Value> <InputBindingCollection> <KeyBinding Key="Enter" Command="im:ControlNavigationCommands.NextControl"/> <KeyBinding Key="Enter" Modifiers="Shift" Command="im:ControlNavigationCommands.PreviousControl"/> </InputBindingCollection> </Setter.Value> </Setter> </Style> </StackPanel.Resources> <TextBox /> <TextBox /> <TextBox /> </StackPanel>
ある特定のキーの組み合わせに割り当てられている定義済みショートカットコマンドの動作を無効にする場合は、そのキーの組み合わせに対して NotACommand コマンドを割り当てます。
以下のサンプルコードは、GcDateTime コントロールに対して F2 キーに割り当てられている動作(入力値のクリア)を無効にします。
<im:GcDateTime> <im:GcDateTime.InputBindings> <KeyBinding Key="F2" Command="ApplicationCommands.NotACommand" /> </im:GcDateTime.InputBindings> </im:GcDateTime>