次の方法で共有


UIElement.PointerPressed イベント

定義

ポインター デバイスがこの要素内で Press アクションを開始したときに発生します。

public:
 virtual event PointerEventHandler ^ PointerPressed;
// Register
event_token PointerPressed(PointerEventHandler const& handler) const;

// Revoke with event_token
void PointerPressed(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::PointerPressed_revoker PointerPressed(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerPressed;
function onPointerPressed(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerpressed", onPointerPressed);
uIElement.removeEventListener("pointerpressed", onPointerPressed);
- or -
uIElement.onpointerpressed = onPointerPressed;
Public Custom Event PointerPressed As PointerEventHandler 
<uiElement PointerPressed="eventhandler"/>

イベントの種類

注釈

タッチ、マウス、ペン/スタイラスの操作は、アプリでポインター入力として受信、処理、管理されます。 これらの操作は、いずれもイベントを PointerPressed 生成できます。 詳細については、「 ポインター入力を処理する」を参照してください。 ポインター イベントは、複数のポインターとそのリレーションシップに関心があるシナリオ、または正確な座標位置などの各ポインターの詳細を調べる場合に使用します。 それ以外の場合は、 タップなどのジェスチャ イベントの処理を検討できます。

PointerEventHandler に基づくハンドラーを使用して、このイベントを処理します。

マウス入力が最初に検出されると、割り当てられている単一ポインターと関連付けられます。 マウス ボタン (左、ホイール、または右) をクリックすると、ポインターとイベントを介 PointerPressed したボタンとの間に二次的な関連付けが作成されます。 PointerReleased イベントは、同じマウス ボタンを離したときにだけ発生します (イベントが完了するまではそのポインターに他のボタンが関連付けられることはありません)。 この排他的な関連付けのために、他のマウス ボタンをクリックした場合は、PointerMoved イベントによってルーティングされます。 次の例に示すように、このイベントを処理するときにマウス ボタンの状態をテストできます。

マウス入力デバイスからのポインター イベントは、通常、アプリの有効期間のイベントの詳細で同じ PointerId を 持ちます。

PointerPressed はルーティング イベントです。 ルーティング イベントの概念の詳細については、「 イベントとルーティング イベントの概要」を参照してください。

タッチ操作や、タッチ操作の結果に発生する対話/操作イベントについては、ヒット テストで要素が表示されない場合、イベント ソースとして使用したり、操作に関連付けられたイベントを起動することはできません。 UIElement.Visibility はVisible である必要があります。 派生型の他のプロパティも、ヒット テストの可視性に影響します。 詳しくは、「イベントとルーティング イベントの概要」をご覧ください。

PointerPressed は、イベントのイベント データが Handled とマークされている場合でも呼び出されるルートにイベント ハンドラーをアタッチする機能をサポートしています。 「 AddHandler」を参照してください。

特定のWindows ランタイム コントロールには、入力イベントのクラスベースの処理がPointerPressed含まれる場合があります。 その場合、コントロールには OnPointerPressed メソッドのオーバーライドが含まれている可能性があります。 通常、イベントはクラス ハンドラーによって処理済みとしてマークされ PointerPressed 、そのコントロール上のユーザー コード ハンドラーによる処理ではイベントは発生しません。 たとえば、 ButtonBase には、 を処理 PointerPressed するクラス処理があり、代わりに Click が発生します。 イベントのクラスベースの処理のしくみの詳細については、「 イベントとルーティング イベントの概要」を参照してください。

コントロールには、イベントとは別に実行される PointerDownThemeAnimation パーソナリティ アニメーションを含めることもできます。

ポインター キャプチャ

PointerPressed は、ポインターをキャプチャするときに開始イベントとして使用される場合があるため、ポインターがダウンしている限り、さらにポインター関連のイベントはすべて特定の要素によってキャプチャされます。 ポインターをキャプチャするには、キャプチャを維持する必要がある特定の UI 要素で CapturePointer メソッドを呼び出します。 これは通常、イベント ハンドラー内でPointerPressed行われ、イベントの senderで を呼び出CapturePointerします。 ポインターをキャプチャする方法と、それを行う必要がある理由の詳細については、「」を参照してください CapturePointer

PointerPressed イベントとジェスチャ イベント、または操作イベント

最初にイベントをPointerPressed発生させるユーザー アクションは、最終的には、入力デバイスがマウスでない限り、Hold ジェスチャを表す Hold イベントが発生する可能性があります。 が発生 PointerPressed する要素に既定以外の ManipulationMode 値がある場合、アクションによって ManipulationStarted などのさまざまな操作イベントが発生する可能性もあります。 詳細については、「 ポインター入力の処理」の「操作イベントの使用」セクションを参照してください。

起動するとPointerPressed、イベントを発生させる前にポインターが解放されるのを待機しているため、Tapped などのジェスチャ イベントはまだ発生しません。

アプリのユーザー操作の一般的な設計規則として、操作に対して処理できるコントロール固有のイベントがあるかどうか、または適切なジェスチャ イベントがあるかどうかを調べる必要があります。 たとえば、コントロールが Button の場合、そのコントロールには、ユーザーがボタンのアクションを呼び出すときに特に目的とする Click イベントがあります。 または、要素がボタンではなく、要素のプライマリ アクションに対して および イベントを処理している場合は、 Tapped を処理します。

ジェスチャ イベントは、 IsTapEnabled などのプロパティを設定することで、個々の要素で明示的に無効にすることができます。 操作を処理している場合はジェスチャ イベントを無効にすることができますが、ポインター イベントを処理している場合は通常、ジェスチャ イベントを無効にする必要はありません。 ポインター イベントを明示的に無効にすることはできませんが、それらを処理しないことを選択できます。

PointerPressed と PointerReleased

PointerReleased ではなく他のイベントは、アクションの最後に発生する可能性があります (PointerCanceledPointerCaptureLost など)。 イベントがPointerReleased常にPointerPressedペアで発生することに依存しないでください。 適切に機能するには、アプリで Press アクションの結論を表す可能性のあるすべてのイベントをリッスンして処理する必要があります。 発生しない理由 PointerReleased の一部を次に示します。

  • 特定のハードウェアがタッチ アクションと プレス アクションを処理する方法の違い
  • 別のポインターからのプログラム ポインター キャプチャ
  • 解像度やモニター設定の変更など、表示領域の関係を変更するユーザー アクション
  • 前のタッチ アクションと同じサーフェスに触れるスタイラスなどの入力操作

適用対象

こちらもご覧ください