如何在 UWP 中实现按住和删除手势?
How to implement hold and delete gesture in UWP?
如何在 UWP 中实现按住和删除手势?
当我检测到用户正在控制我的控件时,我实现了两个 VisualState(NormalState、RemoveState),我只是转到删除按钮可见的 RemoveState。我想知道在用户点击超出我控制范围后如何返回 NormalState。我想在删除应用程序时执行类似于 iOS 的操作。用户应该能够点击并按住一个项目,直到出现删除按钮,然后当用户决定不删除它时,用户只需点击控件之外的任何地方,然后删除按钮就会消失。
使用 hide/show 逻辑创建您自己的弹出窗口可能很棘手,因为您需要以某种方式在弹出窗口和下面的内容之间显示一个不可见的覆盖层,订阅它的 Tapped
事件并执行您的操作dimiss 那里的逻辑。
我建议使用内置的 MenuFlyout
,它已经为您做到了。
<YourControl>
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Delete"/>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</YourControl>
此外,如果您希望它与 鼠标.[=16] 一起使用,您可能需要考虑订阅 RightTapped
事件而不是 Holding
=]
如何在 UWP 中实现按住和删除手势?
当我检测到用户正在控制我的控件时,我实现了两个 VisualState(NormalState、RemoveState),我只是转到删除按钮可见的 RemoveState。我想知道在用户点击超出我控制范围后如何返回 NormalState。我想在删除应用程序时执行类似于 iOS 的操作。用户应该能够点击并按住一个项目,直到出现删除按钮,然后当用户决定不删除它时,用户只需点击控件之外的任何地方,然后删除按钮就会消失。
使用 hide/show 逻辑创建您自己的弹出窗口可能很棘手,因为您需要以某种方式在弹出窗口和下面的内容之间显示一个不可见的覆盖层,订阅它的 Tapped
事件并执行您的操作dimiss 那里的逻辑。
我建议使用内置的 MenuFlyout
,它已经为您做到了。
<YourControl>
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Delete"/>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</YourControl>
此外,如果您希望它与 鼠标.[=16] 一起使用,您可能需要考虑订阅 RightTapped
事件而不是 Holding
=]