UIElement.Tapped 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在此元素的命中测试区域上发生其他未经处理的 点击 交互时发生。
public:
virtual event TappedEventHandler ^ Tapped;
// Register
event_token Tapped(TappedEventHandler const& handler) const;
// Revoke with event_token
void Tapped(event_token const* cookie) const;
// Revoke with event_revoker
UIElement::Tapped_revoker Tapped(auto_revoke_t, TappedEventHandler const& handler) const;
public event TappedEventHandler Tapped;
function onTapped(eventArgs) { /* Your code */ }
uIElement.addEventListener("tapped", onTapped);
uIElement.removeEventListener("tapped", onTapped);
- or -
uIElement.ontapped = onTapped;
Public Custom Event Tapped As TappedEventHandler
<uiElement Tapped="eventhandler"/>
事件类型
注解
触摸、鼠标设备和笔设备都可以产生 点击 操作。 有关详细信息,请参阅 处理指针输入。
有关如何在应用设计中使用点击交互的详细信息,请参阅触摸交互设计。 一般思路是,对元素的 点击 交互在应用中调用元素的主要操作。
事件 Tapped
表示手势,而 PointerPressed 事件是较低级别的输入事件。
Tapped
和 PointerPressed
事件可以作为单个用户交互的结果引发。 如果事件源具有非默认 ManipulationMode,也可以引发 ManipulationStarting 。 即使控件已在控件逻辑中处理 PointerPressed
或正在处理操作,也不会阻止 Tapped
引发。
事件 Tapped
可能是多个指针点的结果。 对于更高级别的手势事件(例如 Tapped
,您不再具有对 PointerPoint 详细信息(如单个 PointerId 值或单个坐标)的即时访问权限。 你确实有权访问设备类型 (PointerDeviceType) ,对于坐标,可以调用 GetPosition,这将提供来自多个指针点的 Tap 的坐标的平均值。
Tapped
是路由事件。 此外,元素必须具有 IsTapEnabledtrue
才能成为 Tapped
事件源, (true
是默认) 。 如果事件从事件源子元素(其中 IsTapEnabled
false
为 )的父元素气泡到父元素,则即使IsTapEnabled
false
在父元素上,也可以处理Tapped
父元素。 有关路由事件概念的详细信息,请参阅 事件和路由事件概述。
对于触摸操作以及特定于交互或触摸操作后果的操作事件,元素必须可见,才能成为事件源。 UIElement.Visibility 必须为 Visible。 派生类型的其他属性也会影响命中测试可见性。 有关详细信息,请参阅事件和路由事件概述。
Tapped
支持将事件处理程序附加到将调用的路由的功能,即使事件的事件数据标记为“ 已处理”也是如此。 请参阅 AddHandler。
特定Windows 运行时控件也可能对事件具有基于类的Tapped
处理。 如果是这样,控件可能具有 OnTapped 方法的替代。 有关事件基于类的处理工作原理的详细信息,请参阅 事件和路由事件概述。
Tapped
和 持有 是相互排斥的。 输入系统必须等到指针点松开,才能确定操作是 应为 Tapped
, Holding
还是其他手势,这样用户就不会在触摸屏幕时立即得到 Tapped
。 如果确实需要即时反馈,建议改用 PointerPressed 。
如果用户交互也引发 DoubleTapped, Tapped
将首先引发以表示第一次点击,但第二次点击不会引发额外的 Tapped
。 如果希望为 Tapped
和 DoubleTapped
使用不同的逻辑,则 Tapped
处理程序可能需要使用特定于应用的变量和计时器,以避免在最终解释为 DoubleTap 操作的交互上运行。
点击鼠标和笔/触笔输入
输入系统处理用户单击鼠标左键作为操作的元素 Tapped
的操作。 在释放鼠标左键之前,事件不会触发。 默认情况下,无论鼠标按钮按住多长时间或按住哪个按钮,鼠标输入都不会产生 “按住 ”事件。
对于触控笔设备,将触控笔设备触摸到表面并停留在一个位置会产生 “保留” 操作。
不引发点击事件的控件
这些控件不会引发 事件 Tapped
: