2

その中にリストボックスがあるキャンバスがあります。リストボックスの各子要素は、Click イベントのイベントハンドラを設定します。キャンバスでイベントハンドラーを設定しました

ManipulationStarted="canvas_ManipulationStarted"       
ManipulationDelta="canvas_ManipulationDelta"
ManipulationCompleted="canvas_ManipulationCompleted"

スワイプのための私のコードは完璧に動作し、1 つのことを受け入れます。それは、ManipulationCompleted イベントハンドラーの前に Click イベントハンドラーを起動します。

ただし、たとえば、リストボックスは同時に完全にスクロールし、Click イベントを発生させません。

したがって、基本的に必要なのは、リストボックスと同じ方法で操作イベントを処理することです。

この条件が真の場合:

private void canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{ 
     e.DeltaManipulation.Translation.X > [some value]
     ....
}

リストボックス内にあるかどうかに関係なく、キャンバスの子要素で Click イベントの発生を無効にする必要があります。

4

1 に答える 1

0

クリック ハンドラーを起動させたくないのに、なぜクリック ハンドラーを設定するのですか?

クリックはポインターが押されたときに発生するため、ユーザーがクリックしたいのか、操作を開始したいのかを判断する方法はありません。「クリック」とスワイプを区別する場合は、クリックされた場所または後のイベントに基づいて決定する必要があります。

クリックの代わりに、操作イベントと共にタップ ジェスチャを処理できます。Tap はポインターが離されたときに起動するため、ユーザーが 1 つの場所をタップして離すと操作システムが起動し、ユーザーがポインターを押して移動すると操作がトリガーされます。

詳細については、「Windows Phone 8 の操作イベントを処理する方法」を参照してください。

于 2015-03-18T02:14:39.813 に答える