WPFのアクセスキー制御
アクセスキーというのは、いわゆる、ALT+なんとかキーで、メニューに飛ぶアレです。 Windows Form で作ったメニューの場合は、「ファイル(&F)」な感じで、「&」を付けるのですが、 WPFの場合には、「ファイル(_F)」な感じで「_」(アンダーバー)を付けます。 WPFでのメニューアクセスキー http://blogs.wankuma.com/yo/archive/2008/02/05/121155.aspx アンダーバーに変わっているのは、多分 XAML でアンパサンド(&)を使うと、記述的に困難だからでしょうね。 なので、メニューにアンダーバーが使えない、という弊害があるわけですが。 # __ のようにアンダーバーを重ねるといける? さて、問題は、メニューが無いときです。 ツイート専用ツールの場合、メニューを付けるのは嫌だし、ショートカットの記号(ツイート(S))を付けるのも嫌だし。 というわけで、 AccessKeyManager クラス (System.Windows.Input) http://msdn.microsoft.com/ja-jp/library/system.windows.input.accesskeymanager.aspx を使います。 XAMLのほうに、 <Grid AccessKeyManager.AccessKeyPressed=”Grid_AccessKeyPressed” として、アクセスキーのハンドラを設定しておいて、次な感じで、Key で振り分けます。 /// <summary> /// アクセスキー制御 /// </summary> /// <param name=”sender”></param> /// <param name=”e”></param> private void textBox1_AccessKeyPressed(object sender, AccessKeyPressedEventArgs e) { switch ( e.Key ) { case “S” : [...]