2016-04-28 6 views
0

私はOKとキャンセルボタンを持つ簡単なウィンドウを持っています。キャンセルボタンのIsCancelプロパティをtrueに設定しました。十分に簡単です。今度は 'ESC'キーを押すとボタンのクリックイベントが発生します。しかし、事実上、私は「A」キーを押すとこのことも起こることを知りました。私はキーボードの他のすべてのキーをチェックしましたが、これを引き起こす唯一のキーは「ESC」と「A」です。なぜWPF IsCancel機能が 'A'キーでトリガーするのですか

これはなぜ起こっているのですか?私は.NET 4.0バグを推測するだろうが、おそらく実際の理由がある。

私も

+0

は、私はこれを再現することはできませんよ。あなたはsscceを提供できますか? – Default

答えて

1

我々は上に行くために多くを持っていないのWindows 8を使用していたが、それは「」で下線が引かれているキャンセルいる可能性がありますか?おそらく、そのボタンの演奏中にキーボードショートカットがあります。

ウィンドウを開いたら、 'ALT'キーを押して 'a'に下線が引かれているかどうかを確認してください。

は、いくつかの詳細については、これを参照してください。 Underline letter in a button

+1

素晴らしい推測です。それはほぼ正確に何が起きているかです。私がALTキーを押すと、CancelからCに下線が引かれます。しかし、このアプリケーションはドイツ語でも動作します。だから私はドイツのフロントエンドを使用するとき、キャンセルは "Abbrechen"に置き換えられます。そこでAはドイツのフロントエンドでウィンドウを閉じ、Cは英語のウィンドウでウィンドウを閉じます。残っている唯一の質問は、なぜこれがALTを先に押さずに働いているのかということですどのように動作するはずですか? –

+0

私はこれをgoogleにしなければなりませんでしたが、ここで答えがあります: "これは、ニーモニックが動作するはずのやり方であり、Windowsフォームでも同じ動作をします。実際にキーストローク自体を受け付けない要素(テキストボックスでは、ボタンはありません)、Altキーはオプションです。ウィンドウ上の別のコントロールでニーモニックをトリガーしてください。 " Ref:https://social.msdn.microsoft.com/Forums/vstudio/en-US/5507c089-9b81-4a9c-b9fb-972a42335ddb/wpf-access-keys-why-do-theywork-without-the- alt-key?forum = wpf –

関連する問題