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