C# WP8.1中拦截操纵增量的问题
我刚开始使用WP8.1的一个应用程序,在保留原始事件处理的同时遇到了一个拦截触摸移动事件的问题 我想做的是:C# WP8.1中拦截操纵增量的问题,c#,wpf,touch,windows-phone-8.1,manipulationdelta,C#,Wpf,Touch,Windows Phone 8.1,Manipulationdelta,我刚开始使用WP8.1的一个应用程序,在保留原始事件处理的同时遇到了一个拦截触摸移动事件的问题 我想做的是: 我有一个列表视图在堆栈面板在滚动查看器在网格中。ScrollViewer处理StackPanel/ListView的垂直滚动 每当出现水平触摸移动时,我都希望得到一个通知,以便根据水平移动调整一些ui元素的位置 听起来很简单,但我尝试的任何方法似乎都取消了ScrollViewer最初的触摸移动处理,因此垂直滚动不再有效。我真的很讨厌自己实现整个滚动行为 我已经试过了: 将opera
- 我有一个
在列表视图
在堆栈面板
在滚动查看器
中。ScrollViewer处理StackPanel/ListView的垂直滚动网格
- 每当出现水平触摸移动时,我都希望得到一个通知,以便根据水平移动调整一些ui元素的位置
ScrollViewer
最初的触摸移动处理,因此垂直滚动不再有效。我真的很讨厌自己实现整个滚动行为
我已经试过了:
- 将
放在operationmode=“TranslationX”operationdelta=“handlextransation”
上。无论出于何种原因,都不会调用ScrollViewer
处理程序handelxtransation
- 将相同的操作信息放在
——现在会调用处理程序(以及父ui元素的所有处理程序),但列表视图上
不再处理滚动,可能是因为滚动查看器
不再将事件传播到其父级列表视图
- 加载xaml类时,向其添加常规触摸处理程序。同样的问题-要么它没有被调用,如果它被调用,
的滚动不再进行ScrollViewer
有什么方法可以在不影响正常治疗的情况下观察操作事件吗?有时谈论它会有所帮助;-) 答案确实很简单,只需将
系统
值添加到列表视图上的操作模式
:
<ListView x:Name="ListView" ManipulationMode="TranslateX,System" ManipulationDelta="translationX">
this.AddHandler(UIElement.ManipulationDeltaEvent, new ManipulationDeltaEventHandler(genericDeltaHandler), true);
ListView.PointerMoved += new PointerEventHandler(pointerEvent);
<ListView x:Name="ListView" ManipulationMode="TranslateX,System" ManipulationDelta="translationX">