我对这个 WPF 世界有点陌生。而且我有点困惑为什么我的滚动视图正在消耗我的触摸事件。
我现在的情况是这样的:
我有这个带有 ItemsControl 的 ScrollViewer。在这个 ItemsControl 中,我使用 Wrappanel 来显示一些矩形。我的 ScrollViewer 应该可以垂直滚动以显示向下包裹的矩形。在这些矩形中的每一个上,我使用各种处理程序创建了一个 CustomBehaviour。这些处理程序之一是处理 LongPressGestures 的“创造性”方法。
问题如下,在我的长按被行为检测到之前,我的 ScrollViewer 正在其 PreviewTouchMove 处理程序中捕获我的 TouchDevice。
如何防止我的 ScrollViewer 过早捕获我的 TouchDevice?如何确保可以滚动 ScrollViewer 并执行 LongPress、DoubleClick(仍然有效)、SingleClick(仍然有效)和其他可能添加到此自定义行为的手势?
我在 stackoverflow 和 google 上发现了类似的问题,我只是没有弄清楚我的具体情况。
带有 CustomThumb 的东西<--此链接通过制作 CustomThumb 来解决问题。我可以以某种方式将其重新用于我的行为吗?通过在我的行为处理程序中及早捕获 TouchDevice?
如果一切都失败了。这个 ScrollViewer 和 CustomBehaviour 组合是否有替代方案?
编辑:
同时。我重试了 CustomThumb 方法。当 UIElements(具有该行为)位于 ScrollViewer 上时,我现在从我的 CustomBehaviour 得到了长按。但是 ScrollViewer 的滚动功能仍然不起作用。我添加的赏金也将奖励给帮助我使其再次正常工作的人(因为答案应该与此 CustomThumb 解决方案的方向相同)。