C# ListView和指针事件-有什么方法处理这个问题吗?

C# ListView和指针事件-有什么方法处理这个问题吗?,c#,xaml,win-universal-app,windows-10,C#,Xaml,Win Universal App,Windows 10,这是非常古老的,我相信常见的情况-我有一个ListView,我想让它处理垂直滚动,但水平移动的指针,我想处理自己 有一个,但它已经三年了,我不知道W10是否有任何变化。在文章的最后,Rob建议避免从自己的事件手动滚动ListView。有没有更好更简单的方法来处理这个问题 示例代码可以如下所示: 第一项 第二项 第三项 第四项 代码隐藏: public主页() { this.InitializeComponent(); mainGrid.PointerMoved+=(发送方,e)=>Debug

这是非常古老的,我相信常见的情况-我有一个ListView,我想让它处理垂直滚动,但水平移动的指针,我想处理自己

有一个,但它已经三年了,我不知道W10是否有任何变化。在文章的最后,Rob建议避免从自己的事件手动滚动ListView。有没有更好更简单的方法来处理这个问题

示例代码可以如下所示:


第一项
第二项
第三项
第四项
代码隐藏:

public主页()
{
this.InitializeComponent();
mainGrid.PointerMoved+=(发送方,e)=>Debug.WriteLine(“指针移动”);
mainGrid.AddHandler(PointerPressedEvent,新的PointerEventHandler((sender,e)=>Debug.WriteLine(“指针按下”)),true;
mainGrid.AddHandler(PointerReleasedEvent,new PointerEventHandler((sender,e)=>Debug.WriteLine(“指针已释放”)),true;
}

主要问题是,当ListView的scrollviewer获取指针事件时,它会“吞并”它。正如您在上面看到的,我们可以订阅已按下/已发布的事件,以便无论如何调用它们,但对于pointermoved事件,这是不可能的。理论上应该有一种方法来实现这一点,例如,Pivot内部的ListView工作正常-垂直滚动由ListView执行,水平滚动由Pivot执行。如何做到这一点?有什么想法吗?

过去也有类似的问题。找不到任何解决方法。@M.Hassan这似乎与所有具有scrollviewer或其他控件来处理指针事件的控件有关。由于它是一个路由事件,因此在处理后不会进一步传递。因此,我想知道pivot内部是如何使用listview的。pivot内部是如何使用listview的。我曾经处理过一个类似的案例:。我刚刚在那里尝试了解决方案,似乎这里的情况有所不同。@GraceFeng MSFT感谢您的评论。似乎你发布的答案遵循了提到的Rob Caplan的博客帖子-禁用scrollviewer并处理事件。我想避免这种情况。但另一个答案带来了一些启示——看起来pivot正在利用水平链接。我会尝试一下,看看我是否能用上它。你解决了这个问题吗?到目前为止,我还没有找到一个好的做法,如果你有任何解决办法,请让我知道。