Control.OnPointerEntered(PointerRoutedEventArgs) 方法

定義

PointerEntered 事件發生之前呼叫。

protected:
 virtual void OnPointerEntered(PointerRoutedEventArgs ^ e) = OnPointerEntered;
void OnPointerEntered(PointerRoutedEventArgs const& e);
protected virtual void OnPointerEntered(PointerRoutedEventArgs e);
function onPointerEntered(e)
Protected Overridable Sub OnPointerEntered (e As PointerRoutedEventArgs)

參數

e
PointerRoutedEventArgs

事件的事件資料。

備註

Windows 8 行為

針對 Windows 8,如果螢幕游標 (或手寫筆或觸控點) 實際上並未移動, 則 PointerEntered 事件不會引發。 例如,如果滑鼠和其螢幕上游標維持固定狀態,且具有PointerEntered處理常式的物件已轉譯或調整為在螢幕游標下方移動,則 PointerEntered不會引發。 或者,如果快顯視窗或飛出視窗之類的專案消失,而且指標現在位於新元素上方 (,但指標尚未移動) ,則 PointerEntered 不會引發。 與這個相關的是 PointerExited 行為。 例如,如果以程式設計方式關閉快顯視窗,如果指標未移動作為關閉它的原因,它就不會引發 PointerExited 。 如果指標在剛顯示的專案上移動,但由使用者決定是否會發生,而且會在移動時發生,而不是關閉時發生,您仍會收到 PointerEntered 事件。 簡單地說,嘗試在 Windows 8 中針對指標狀態判斷引發 PointerEntered 的最後一個專案並不完整,而且有許多案例會指出 PointerEnteredPointerExited 不會配對。 這會影響使用 PointerEnteredPointerExited 做為觸發程式的控制項視覺狀態。

從 Windows 8.1 開始,指標一次引發PointerEntered事件的任何情況都會引發PointerExited,但某些 UI 狀態變更會在指標不再在該元素內發生。 這包括整個元素消失的情況。 而且,如果指標現在位於不同的元素上,因為先前的專案消失,即使指標永遠不會移動,該元素也會引發 PointerEntered。 以程式設計方式將其Visibility設定為Collapsed 的專案,是元素可能從 UI 消失的其中一種方式,而Windows 8.1行為會考慮此問題,並且會針對新顯示的專案引發 **Collapsed ** 元素和PointerEntered 的 PointerExited

如果您將應用程式程式碼從 Windows 8 移轉至Windows 8.1您可能想要考慮此行為變更,因為它會導致PointerExitedPointerEntered在之前未引發的情況下引發。

針對 Windows 8 編譯但在 Windows 8.1 上執行的應用程式會繼續使用 Windows 8 的行為。

適用於

另請參閱