UIElement.Holding 事件

定義

發生于在此元素的點擊測試區域上發生未處理的 保留 互動時。

public:
 virtual event HoldingEventHandler ^ Holding;
// Register
event_token Holding(HoldingEventHandler const& handler) const;

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

// Revoke with event_revoker
UIElement::Holding_revoker Holding(auto_revoke_t, HoldingEventHandler const& handler) const;
public event HoldingEventHandler Holding;
function onHolding(eventArgs) { /* Your code */ }
uIElement.addEventListener("holding", onHolding);
uIElement.removeEventListener("holding", onHolding);
- or -
uIElement.onholding = onHolding;
Public Custom Event Holding As HoldingEventHandler 
<uiElement Holding="eventhandler"/>

事件類型

備註

觸控會產生 保留 動作,但滑鼠裝置通常無法。 如需詳細資訊,請參閱 處理指標輸入

點選DoubleTappedRightTapped事件只會在移除觸控點之後發生。 但在觸控點仍在接觸時,就會發生初始的 Holding 事件。 如果觸控點在一段時間內維持在大致相同的 PointerPoint 位置,就會發生此事件。 系統解譯為保留動作的確切時機,可透過系統設定來調整使用者。

保留適用于參考性 UI,但為了顯示操作功能表之類的互動,您應該改用 RightTapped 。 您可以先處理 [保留] 以顯示功能表將出現的提示,但若要顯示功能表本身,請使用 RightTapped 處理常式。 如需如何在應用程式設計中使用保留互動的詳細資訊,請參閱自訂使用者互動的觸控互動設計UX 指導方針

保存事件通常會以配對方式發生。 當動作第一次解譯為「保留」動作時,會根據一段時間沒有移動而引發,而 HoldState 值為 HoldRoutedEventArgs事件資料中的Started[保留]動作結束時,會引發另一個 Hold 事件,這次會使用CompletedCanceledHoldState

  • 如果使用者未在[保留] 狀態期間移動指標,然後釋放起始動作的指標點,則 Hold巨集指令會以HoldState結束。 在此情況下, RightTapped 會在第二個 Holding 事件之後引發。

  • 如果使用者移動指標 (起始動作的) ,或是針對在動作期間變更元素上的點擊測試狀態或擷取另一個指標等不常見情況, 則 Hold 巨集指令會以 HoldState 結尾為 Canceled 。 如果 Hold 巨集指令以 HoldState 作為 Canceled結束,則不會引發 RightTapped

Holding 事件代表手勢, 而 PointerPressed 事件則是較低層級的輸入事件。 保留和 PointerPressed 事件可能會因為單一使用者互動而引發。 即使控制項已經處理控制項邏輯中的指標事件,或正在處理操作,也不會防止引發保留。

保留事件可能是多個指標點的結果。 對於較高層級的手勢事件,例如保留,您不再可以立即存取 PointerPoint 詳細資料,例如個別 PointerId 值或個別座標。 您可以存取裝置類型 (PointerDeviceType) ,而且您可以呼叫 GetPosition 來呼叫 GetPosition,這會從多個指標點提供 Hold 的座標平均值。

保留是路由事件。 此外,元素必須具有 IsHoldingEnabled才能成為 保留事件來源, (true 是預設) 。 即使父元素的IsHoldingEnabled為 false,如果事件從IsHoldingEnabledfalse的事件來源子項目泡泡到父元素,則它還是可以處理在父元素上保留。 如需路由事件概念的詳細資訊,請參閱 事件和路由事件概觀

對於觸控動作以及因為觸控動作而引發的互動特定或操作事件,元素必須具有點擊測試可見性,才能成為事件來源並引發與動作相關聯的事件。 UIElement.Visibility 必須是 可見的。 衍生型別的其他屬性也會影響點擊測試可見度。 如需詳細資訊,請參閱事件與路由事件概觀

保留支援將事件處理常式附加至將叫用的路由,即使事件的事件資料標示為 Handled 也一樣。 請參閱 AddHandler

特定Windows 執行階段控制項可能會有保留事件的類別型處理。 如果是,控制項可能具有 OnHolding方法的覆寫。 如需事件類別型處理運作方式的詳細資訊,請參閱 事件和路由事件概觀

點選 和保留互斥。 如果動作通過將時間臨界值視為 「保留 」動作,則不會被視為 「點 選」動作。

只要元素一開始引發,只要元素透過非預設 的 ManipulationMode 值支援操作事件, ManipulationStarting 也會引發。 如果指標點停留在足以偵測到保留的一個位置,但之後使用者移動與 保留 動作相關聯的指標點,而不放開它們 (導致另一個 Hold 事件,其中 HoldStateCanceled) ,則也會引發其他操作事件,例如 ManipulationStartedManipulationDelta

按住滑鼠和手寫筆/手寫筆輸入

不論滑鼠按鍵按住多久,或保留哪一個按鈕,滑鼠輸入預設都不會產生保留事件。 不過,當滑鼠右鍵或對等專案按下並放開時,滑鼠裝置和某些手寫筆裝置可能會引發 RightTapped

注意

如果您使用自己的 GestureRecognizer 並在設定中指定 HoldWithMouse ,則可以將滑鼠動作視為保留動作。

適用於

另請參閱