当 HubSection 操作模式设置为系统时,指针事件不会触发
Pointer events are not firing when HubSection Manipulation mode is set to System
在那种情况下(在 WinPhone 设备或模拟器上),即使是 CoreWindow 也不会收到任何事件。如果 PointerMoved 不触发,我如何跟踪指针位置和状态?我已将处理程序添加到 CoreWindow,页面 - 无论如何。我使用了 AddHandler 并将最后一个参数设置为 "true" - 它不会改变任何东西。
只要您直接或在控件内拥有 ScrollViewer(大多数集合控件都包含 ScrollViewer,包括 Hub),您就会遇到此行为。当 ScrollViewer 收到 PointerPressed 事件时,它会接管指针处理 运行 它的滚动,一旦 ScrollViewer 负责,它就会处理所有指针和操作事件,而应用程序没有自己的机会。
一旦 ScrollViewer 接管了操作,就没有办法避免这种情况。根据应用程序的特定需求,它可能能够阻止 ScrollViewer 处理操作,因此应用程序可以自己执行此操作,但应用程序没有一个既让 ScrollViewer 滚动又处理指针消息的好方法。
我在 Windows 8 时间段写了一篇关于此的博客文章:Where did all my gestures go? Windows 8.1 和 Windows Phone 8.1,但基本概念仍然有效。
在那种情况下(在 WinPhone 设备或模拟器上),即使是 CoreWindow 也不会收到任何事件。如果 PointerMoved 不触发,我如何跟踪指针位置和状态?我已将处理程序添加到 CoreWindow,页面 - 无论如何。我使用了 AddHandler 并将最后一个参数设置为 "true" - 它不会改变任何东西。
只要您直接或在控件内拥有 ScrollViewer(大多数集合控件都包含 ScrollViewer,包括 Hub),您就会遇到此行为。当 ScrollViewer 收到 PointerPressed 事件时,它会接管指针处理 运行 它的滚动,一旦 ScrollViewer 负责,它就会处理所有指针和操作事件,而应用程序没有自己的机会。
一旦 ScrollViewer 接管了操作,就没有办法避免这种情况。根据应用程序的特定需求,它可能能够阻止 ScrollViewer 处理操作,因此应用程序可以自己执行此操作,但应用程序没有一个既让 ScrollViewer 滚动又处理指针消息的好方法。
我在 Windows 8 时间段写了一篇关于此的博客文章:Where did all my gestures go? Windows 8.1 和 Windows Phone 8.1,但基本概念仍然有效。