背景:キーボードイベントをキャプチャできるアプリケーションがあります。メイン画面で、ユーザーは「開始」ボタンをクリックします。ゲーム中は、スタートボタンが消え、リセットボタンが表示されます(2つのコントロールの表示が変わります)。これらは、他のすべてがフォーカス不可能なユーザーコントロールであるため、標準コントロールは2つしかありません。Silverlightでのキーイベントのキャプチャ
問題:ユーザーが[開始]をクリックすると、フォーカスが移動して表示され、[リセット]が表示され、[リセット]ボタンが自動的にフォーカスを取得したように見えます。キープレスのイベントは引き続き行われているので、これはひどいことではありませんが、焦点は大きな問題を引き起こします。ユーザーがSpaceを押すと、このボタンはClickイベントをClickイベントとして解釈します。
KeyUpとKeyDownのハンドラをボタン自体に追加し、そのイベントをHandledに設定すると、スペースを押して放してもイベントが飲み込まれますが、タップしただけではイベントは飲み込まれません。
質問:スペースが私のアプリケーションのスペースに応答できるうちに、スペースがボタンをアクティブにしないようにするにはどうすればよいですか?
ありがとうございます!これは私がやったことです。唯一の副作用は、WindowsがClickイベントを作成するのにスペースバーを使用することができないように思われたことでした。これを回避するために、私はクリックイベントハンドラに接続しました。簡単にするために、私はゼロサイズの境界線とタブ順のリセットボタンの後に1x1サイズの標準ボタンを作成しました。スペースバー/クリックイベントの奇妙さのために、複数のイベントを(簡単にとにかく)受け取るためにスペースバーを押し下げることはできませんが、私のアプリケーションではそれほど悪くはありませんでした。 お返事いただきありがとうございます。 –