UIElement.ManipulationStarting 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在首次创建操作处理器时发生。
public:
virtual event ManipulationStartingEventHandler ^ ManipulationStarting;
// Register
event_token ManipulationStarting(ManipulationStartingEventHandler const& handler) const;
// Revoke with event_token
void ManipulationStarting(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::ManipulationStarting_revoker ManipulationStarting(auto_revoke_t, ManipulationStartingEventHandler const& handler) const;
public event ManipulationStartingEventHandler ManipulationStarting;
function onManipulationStarting(eventArgs) { /* Your code */ }
uIElement.addEventListener("manipulationstarting", onManipulationStarting);
uIElement.removeEventListener("manipulationstarting", onManipulationStarting);
- or -
uIElement.onmanipulationstarting = onManipulationStarting;
Public Custom Event ManipulationStarting As ManipulationStartingEventHandler
<uiElement ManipulationStarting="eventhandler"/>
事件类型
注解
有关自定义控件和交互体验,请参阅 GestureRecognizer。
元素必须具有除 None 或 System 以外的 ManipulationMode 值,才能成为操作事件源。 ManipulationMode 的默认值为 System,它支持内置控制逻辑来处理操作,但不允许应用代码处理操作事件。 如果要处理操作,请将 ManipulationMode 设置为 All 或特定的 ManipulationModes 值。 有关详细信息,请参阅 ManipulationMode。
基本上,每当指针与元素启用操作的元素交互时,ManipulationStarting 将触发。 这包括将操作解释为手势且指针永远不会移动的情况,例如 点击 或 按住 手势。 如果指针确实移动, 则 ManipulationStarted 通常会在此之后触发。
ManipulationStarting 是路由事件。 如果允许事件浮升到父元素,因为它未经处理,则即使父元素的 ManipulationMode 为 None 或 System ,也可以处理父元素上的事件。 有关路由事件概念的详细信息,请参阅 事件和路由事件概述。
对于触摸操作以及特定于交互的事件或一个触摸操作引起的操作事件,一个元素必须对点击测试可见,以用作事件源并触发与该操作关联的事件。 UIElement.Visibility 必须为 Visible。 派生类型的其他属性也会影响命中测试可见性。 有关详细信息,请参阅事件和路由事件概述。
ManipulationStarting 支持将事件处理程序附加到将调用的路由,即使事件的事件数据标记为“ 已处理”也是如此。 请参阅 AddHandler。
Windows 8 行为
如果多个手势在短时间内发生,Windows 8 在触发此事件时出现问题。 例如,Windows 8 可能仅为第一个手势触发 ManipulationStarting,而不能针对第二个手势触发 ManipulationStarting。 此问题已修复,从Windows 8.1开始;输入系统处理的多个启动手势分别触发不同的 ManipulationStarting 事件。
对于针对 Windows 8 编译的应用,如果它在 Windows 8.1 上运行,将继续使用 Windows 8 行为。