WPFショートカットキーについてメモするガキ
WPFのキーバインディングのメモ書き
ショートカットキープロパティがWPFないから仕方ない。
あくまで自分がFFE2でやったやり方だし、あってるか知らんしって感じですけども。
キーバインディング適用するWindowの名前をMainWindowとしておく。
MainWindow.xaml.csに
public readonly static RoutedCommand FocusTop = new RoutedCommand("FocusTop", typeof(MainWindow));//一番上にフォーカスする
とグローバルで宣言しておく。
RoutedCommandのインスタンスを生成するが、第一引数には変数名と同じ名前のString値を、第二引数にはOwnerTypeということで、たぶん適用するコントロールのオーナーであるMainWindowでいいと思うけど。
InputGestureCollectionについてはちょっと良くわかってないです。
this.CommandBindings.Add(new CommandBinding(FocusTop, (s, e) => { FocusTopbutton_Click(s, e); }, (s, e) => e.CanExecute = true));
で、コマンドバインディングを追加する。
ラムダ式使って、CommandBindingのインスタンスを追加する。
第二引数にはどんな処理をするかを書く。別にイベントハンドラである必要はない。MessageBox.Show("miku")とかでもおk。
で、xaml.csいじるのはおしまい。
次はMainWindow.xamlにいきます。
これを
一番上でいいと思います。
こんなかんじで。
あとは
これをCommandBindingsのちょっと下に書いておけばショートカットキーが使えます。