Control.OnPointerExited(PointerRoutedEventArgs) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在 PointerExited 事件发生之前调用。
protected:
virtual void OnPointerExited(PointerRoutedEventArgs ^ e) = OnPointerExited;
void OnPointerExited(PointerRoutedEventArgs const& e);
protected virtual void OnPointerExited(PointerRoutedEventArgs e);
function onPointerExited(e)
Protected Overridable Sub OnPointerExited (e As PointerRoutedEventArgs)
参数
事件的事件数据。
注解
Windows 8 行为
对于 Windows 8,如果屏幕光标 (、触笔或触摸点) 实际未移动,则通常不会触发 PointerEntered 事件。 例如,如果鼠标及其屏幕光标保持静止,并且具有 PointerEntered 处理程序的对象已转换或调整其位置以在屏幕光标下方移动,则 PointerEntered 不会触发。 或者,如果弹出窗口或浮出控件等元素消失,并且指针现在位于新元素 (但指针尚未) 移动,则 PointerEntered 不会触发。 与此相关的是 PointerExited 行为。 例如,如果弹出窗口以编程方式关闭,则如果指针未作为消除它的原因移动,则不会触发 PointerExited 。 如果指针在最近显示的元素上移动,你仍会收到 PointerEntered 事件,但这要由用户决定,这是否会发生,以及它发生在移动时,而不是在解除的时刻发生。 简而言之,尝试使用最后一个触发 PointerEntered 的元素在应用 UI 中用于指针状态确定,在 Windows 8 中并不全面,而且在很多情况下 PointerEntered 和 PointerExited 不会配对。 这也会影响使用 PointerEntered 和 PointerExited 作为触发器的控件的视觉状态。
从Windows 8.1开始,当指针一次触发 PointerEntered 事件时,都会触发 PointerExited,但如果指针不再位于该元素中,则会发生一些 UI 状态更改。 这包括整个元素消失的情况。 如果指针现在位于其他元素上,因为以前的元素消失,则即使指针永远不会移动,该元素也会触发 PointerEntered。 以编程方式将其可见性设置为 Collapsed 的元素是元素可能从 UI 中消失的一种方式,Windows 8.1行为会对此进行说明,并将为 **Collapsed ** 元素触发 PointerExited,为新显示的元素触发 PointerEntered。
如果将应用代码从 Windows 8 迁移到 Windows 8.1可能需要考虑此行为更改,因为这会导致 PointerExited 和 PointerEntered 在以前不会触发的情况下被触发。
对于针对 Windows 8 编译的应用,如果它在 Windows 8.1 上运行,将继续使用 Windows 8 行为。