Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WP8.1中拦截操纵增量的问题_C#_Wpf_Touch_Windows Phone 8.1_Manipulationdelta - Fatal编程技术网

C# 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

我刚开始使用WP8.1的一个应用程序,在保留原始事件处理的同时遇到了一个拦截触摸移动事件的问题

我想做的是:

  • 我有一个
    列表视图
    堆栈面板
    滚动查看器
    网格
    中。ScrollViewer处理StackPanel/ListView的垂直滚动
  • 每当出现水平触摸移动时,我都希望得到一个通知,以便根据水平移动调整一些ui元素的位置
听起来很简单,但我尝试的任何方法似乎都取消了
ScrollViewer
最初的触摸移动处理,因此垂直滚动不再有效。我真的很讨厌自己实现整个滚动行为

我已经试过了:

  • operationmode=“TranslationX”operationdelta=“handlextransation”
    放在
    ScrollViewer
    上。无论出于何种原因,都不会调用
    handelxtransation
    处理程序
  • 将相同的操作信息放在
    列表视图上
    ——现在会调用处理程序(以及父ui元素的所有处理程序),但
    滚动查看器
    不再处理滚动,可能是因为
    列表视图
    不再将事件传播到其父级
  • 加载xaml类时,向其添加常规触摸处理程序。同样的问题-要么它没有被调用,如果它被调用,
    ScrollViewer
    的滚动不再进行
XAML代码如下所示(去掉一些数据):


有什么方法可以在不影响正常治疗的情况下观察操作事件吗?

有时谈论它会有所帮助;-)

答案确实很简单,只需将
系统
值添加到
列表视图上的
操作模式

<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">