3

C# と WPF を使用して大規模な基幹業務アプリを開発しています。私たちの標準は、すべてのフォームのボタン (保存、キャンセル、検索など) にアクセラレータ キーを含めることです。最近、フォームが読み込まれると、ユーザーが "Alt" キーを押さなくてもアクセラレータ キーがアクティブになっていることに気付きました。たとえば、検索ボタンはアクセラレータとして「Alt-H」を使用しますが、ユーザーは「H」を押すだけで検索を開始できます。ボタン コンテンツで標準の "_" を使用して、アクセラレータ キーを作成しています。

<Button Content="Searc_h"/>

他の誰かがこの動作に気づいていて、「Alt」キーを押す必要がある適切な回避策を見つけた人はいますか?

4

5 に答える 5

11

これは、テキスト入力がフォーカスされていない場合のWindowsのアクセラレータキーの標準的な動作です。壊さないで、そのままにしておいてください。

これは自分で確認できます。Win + Rを押して[実行...]ダイアログを表示し、Tabキーを押してボタンの1つにフォーカスを合わせ、[B]を押します。「参照」ボタンがアクティブになります。

これが、(Alt + Y / Alt + Nの代わりに)単純なY/NでこれらのMessageBoxプロンプトに応答できる理由でもあります。

于 2012-03-17T20:49:55.363 に答える
3

アンダースコアをまったく入れずに、これをウィンドウに追加します。

  <Window.InputBindings>
    <KeyBinding Command="Help" Key="H" Modifiers="Alt"/>
  </Window.InputBindings>
于 2011-10-03T23:38:34.160 に答える
1

Sara Ford の Weblog のこの記事では、この現象について説明しています。

コメンターはこれを解決策として言及しています:

「アプリケーションを作成していて、この動作が気に入らない場合は、WM_CHANGEUISTATE、特に UISF_HIDEFOCUS フラグを調べてください。」

于 2009-11-05T15:20:24.333 に答える
1

メニューとツールバーのニーモニックは、WPF で Alt キーを押さなくても機能します。これはマイクロソフトの標準です。このリンクを参照してください http://social.msdn.microsoft.com/Forums/en/wpf/thread/14f6f49f-0027-471b-b68c-e7f6ba012012

于 2011-07-19T10:01:10.703 に答える
-1

実際、WPF の Command パターンを使用すると、許可するキーボード ショートカットをより細かく制御できます。ボタンテキストの「_」よりも一歩進んでいます。

詳細については、次のリンクを確認してください。

http://www.switchonthecode.com/tutorials/wpf-tutorial-command-bindings-and-custom-commands

編集:以前のリンクは無効でした-新しいリンクを提供しました。

-ダグ

于 2010-05-11T21:45:05.590 に答える