如何在 Windows 商店应用程序中处理/捕获长按

Posted

技术标签:

【中文标题】如何在 Windows 商店应用程序中处理/捕获长按【英文标题】:How to handle/capture a long press in windows store apps 【发布时间】:2012-10-20 18:20:40 【问题描述】:

谁能告诉我如何在 C# 中为 Windows 商店应用程序捕获长按? 我可以使用“轻敲”手势没问题,但是当我更换 TappedRoutedEventArgsHoldingRoutedEvent 它只是没有注册一个保持手势。 我正在用我的笔记本电脑对此进行测试,所以它可能无法识别鼠标按住事件吗?

我假设 windows phone 7 也有类似的功能,但它们主要用于 Silverlight,而不会用于 Windows 8。 任何链接/示例都会有很大帮助!

谢谢!

【问题讨论】:

【参考方案1】:

使用举行事件:

XAML:

<Grid Background="StaticResource ApplicationPageBackgroundThemeBrush" Holding="Grid_Holding_1">
</Grid>

CS:

private void Grid_Holding_1(object sender, HoldingRoutedEventArgs e)

    Debug.WriteLine("You held at" + DateTime.Now.ToString());

关于鼠标没有触发按住事件的说法是正确的。在模拟器中运行,然后就可以使用“Basic Touch Mode”来模拟Hold了。

【讨论】:

谢谢约翰!完美解决了我的问题。没有意识到模拟器有不同的触摸选项。也许你可以帮助我更进一步。由于模拟器不会拾取鼠标握持手势,是否有不同的方法来捕捉这一点?就像在处理鼠标手势的更多代码中一样?我发现 API 在这方面有点难以理解,所以认为最好在这里问! @AimeeJones 如果你想使用鼠标事件,你可以使用 PointerPressed 和 PointerReleased 事件。要使用鼠标完成类似的效果,您可以在 PointerPressed 事件中启动计时器并在释放事件中取消它。如果它在取消之前触发,那么他们按住鼠标指针。 啊,我以为是这样的。再次感谢您的帮助!

以上是关于如何在 Windows 商店应用程序中处理/捕获长按的主要内容,如果未能解决你的问题,请参考以下文章

如何捕获“应用程序名称[procId]中发生未处理的win32异常。”

使用 fiddler 捕获 Windows 商店应用程序流量引发异常

WASAPI + windows 商店应用初始化

如果脚本正在由任务调度程序运行,我如何捕获它的输出?

如何使用 ImageMagick 在 Windows 批处理文件中捕获图像比较结果

如何在 Windows x64 C++ 应用程序中捕获堆栈溢出