UIElement.PointerExited 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生于指標離開這個專案的點擊測試區域時。
public:
virtual event PointerEventHandler ^ PointerExited;
// Register
event_token PointerExited(PointerEventHandler const& handler) const;
// Revoke with event_token
void PointerExited(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::PointerExited_revoker PointerExited(auto_revoke_t, PointerEventHandler const& handler) const;
public event PointerEventHandler PointerExited;
function onPointerExited(eventArgs) { /* Your code */ }
uIElement.addEventListener("pointerexited", onPointerExited);
uIElement.removeEventListener("pointerexited", onPointerExited);
- or -
uIElement.onpointerexited = onPointerExited;
Public Custom Event PointerExited As PointerEventHandler
<uiElement PointerExited="eventhandler"/>
事件類型
備註
事件 PointerExited
會引發,以回應一開始在元素周框區域中離開該周框區域的指標。 觸控、滑鼠和手寫筆/手寫筆互動會在應用程式中接收、處理及管理為指標輸入。 這些裝置及其互動都可以產生 PointerExited
事件。 如需詳細資訊,請參閱 本主題中的處理指標輸入 和其他備註。
使用以 PointerEventHandler 為基礎的處理常式來處理此事件。
對於觸控動作以及因為觸控動作而引發的互動特定或操作事件,元素必須具有點擊測試可見性,才能成為事件來源並引發與動作相關聯的事件。 UIElement.Visibility 必須是 可見的。 衍生型別的其他屬性也會影響點擊測試可見度。 如需詳細資訊,請參閱事件與路由事件概觀。
PointerExited
支援將事件處理常式附加至將叫用的路由的能力,即使事件的事件資料標示為 Handled也一樣。 請參閱 AddHandler。
特定Windows 執行階段控制項可能會有 PointerExited
輸入事件的類別型處理。 如果是,控制項可能具有 OnPointerExited方法的覆寫。 一般而言,事件不會被類別處理常式標示為已處理,因此 PointerExited
您的使用者程式碼仍可處理 UI 中控制項的事件。 如需事件類別型處理運作方式的詳細資訊,請參閱 事件和路由事件概觀。
如果另一個元素已擷取指標,即使擷取的指標離開元素的界限, PointerExited
也不會引發。 如需指標擷取的詳細資訊,請參閱 CapturePointer 或 Mouse 互動。
滑鼠和手寫筆/手寫筆輸入的 PointerExited
滑鼠輸入裝置具有螢幕游標,每當滑鼠移動時,即使沒有按下滑鼠按鍵,也一樣。 類似的行為適用于手寫筆裝置輸入,其中輸入裝置可以偵測手寫筆停留在輸入裝置介面上, (IsInRange) 但無法觸碰它。 因此,滑鼠和手寫筆裝置輸入會在與觸控事件稍有不同的情況下引發 PointerExited
事件。 如需詳細資訊,請參閱互動。 事件會在引發元素的最後一個 PointerExited
PointerMoved 事件之後引發。
Touch 輸入的 PointerExited
只有在手指觸碰表面時,才能偵測到觸控點。 每當觸控動作產生 PointerReleased 事件時,該事件就會緊接在事件後面 PointerExited
,而且所有事件資料都是相同指標識別碼、相同位置 ) 等兩個事件的資訊, (相同的指標識別碼、相同位置等等。換句話說,指標會被視為在觸控點所觸碰到元素的時刻和位置。
或者,如果指標在移動時仍與表面保持固定接觸,一開始在元素上方,然後結束元素的點擊測試界限,就會產生 PointerExited
觸控點。 針對這類觸控動作,您也可以將動作當作操作或手勢來處理,而不是指標事件。 如需詳細資訊,請參閱 處理指標輸入。
PointerExited 的路由事件行為
PointerExited
是路由事件。 如需路由事件概念的詳細資訊,請參閱 事件和路由事件概觀。 您可以在 XAML UI 中定義元素的多個 PointerExited
事件,包括父子關聯性中的元素。 在一般 UI 組合中,子項目位於父元素界限內的某處,因此 PointerExited
當指標移出子系時,子系就會先發生事件,然後在指標完全移出該父系時,針對父代。 當子項目引發事件時,事件 PointerExited
通常不會反升至父代,因為輸入系統也會混淆事件發生,因此也會將事件出現次數路由 PointerExited
傳送至父代。 您通常不想 PointerExited
讓事件路由傳送,您只想要從寄件者處理它們。 您可以在處理常式中將 [已處理 ] 設定為 true
,明確地防止事件路由。
在少數情況下,可以看到 PointerExited
父系的事件泡泡。 例如,如果您使用 RenderTransform 來位移其父系界限以外的子專案,則事件會在子項目結束時向父元素泡泡,並提供事件資訊,如子項目引發事件的方式所報告。
控制項的 PointerOver 視覺狀態
具有控制項範本的控制項只能在指標超出控制項界限時套用作用中的視覺狀態。 您不一定需要處理 PointerEntered 或 PointerExited
取得或變更此行為。 您可能需要重新範本控制項。 如果您衍生自已經有叫用視覺狀態之低階輸入處理的現有控制項,您應該在 「CommonStates」 VisualStateGroup中提供名為 「PointerOver」 的視覺狀態,而內建控制項邏輯會在指標超過控制項時載入該視覺狀態。 指標的視覺狀態通常存在於可叫用或選取的控制項上,例如 Button 或 ListViewItem。 如果您衍生自 控制項之類的基 類,其沒有叫用視覺狀態的內建輸入事件處理,您可能需要覆寫 OnPointerEntered 和 OnPointerExited 自行取得此行為。 使用 OnPointerExited
呼叫 GoToState 來載入 「PointerOver」 狀態以外的狀態,例如 「Normal」。