1

エミュレーターで単純な Windows Phone 8 アプリをテストしています。アプリの最初のロード時に、Button オブジェクトが長押しに正しく反応しないことを発見しました。そのボタンが最初にクリックされた場合 (そして、クリック アンド ホールドとしましょう)、Click イベントがトリガーされます。すばやくタップしたかのようにボタンにバインドされます。ただし、画面のどこかをタップしてボタンを長押しすると、正しく動作します (つまり、強調表示されますが、クリックを解除するまで Click イベントは実行されません)。

私は Windows Phone を持っていないので、これがエミュレータ固有の問題なのか、それとも何なのかわかりません。しかし、そうではないと仮定すると、これはフォーカスの問題だと思います。画面上の別の場所をクリックし、ボタンを長押しして正しく動作させることができるからです。

私の最初のアイデアは、アプリが最初に読み込まれたときにボタンにフォーカスを与えることでした。ただし、onNavigatedTo イベントまたは Loaded イベント (「Loaded」という名前はそのイベントにバインドされた関数にブレークポイントを設定すると、現在の画面の背景が読み込まれていないことがわかります)。UI がロードされたら myButton.Focus() を呼び出すことができる別の関数はありますか? 最初にボタン フォーカスを割り当てる方法がない場合は、アイデアがありません。誰かがこれに対する回避策を持っていますか?

4

1 に答える 1

1

WP8 エミュレーターは別の Hyper-V マシンであるため、エミュレーターを初めてクリックすると、マウスがキャプチャされます。これは、アプリケーションの一部であるクリック/タップ (および関連するイベント) に影響を与える可能性があります。

これに対する修正を期待しないでください。これに注意して、エミュレーターとのやり取りを開始する前に、エミュレーターの中立的な場所をクリックすることを学んでください。

于 2012-12-11T17:34:56.297 に答える