Windows 8 ScrollViewer捕捉指针按下+;指针移动到滚动

Windows 8 ScrollViewer捕捉指针按下+;指针移动到滚动,windows-8,windows-runtime,winrt-xaml,scrollviewer,Windows 8,Windows Runtime,Winrt Xaml,Scrollviewer,我目前正在创建一个小绘图程序,在一个滚动查看器中有一个白色的网格 为了检测用户是否正在绘图,我捕获PointerPressed事件以将变量isUserDrawing设置为true,并捕获PointerMove事件,如果isUserDrawing我会在鼠标所在的位置写一行 它与标准鼠标配合得非常好。但是,当我使用模拟器进行触摸测试时,ScrollViewer正在捕获事件并开始滚动,Grid不再触发事件。 有没有办法让ScrollViewer只用两个手指而不是一个手指来响应?没有。您可以选择在Scr

我目前正在创建一个小绘图程序,在一个滚动查看器中有一个白色的网格

为了检测用户是否正在绘图,我捕获
PointerPressed
事件以将变量
isUserDrawing
设置为true,并捕获
PointerMove
事件,如果
isUserDrawing
我会在鼠标所在的位置写一行

它与标准鼠标配合得非常好。但是,当我使用模拟器进行触摸测试时,
ScrollViewer
正在捕获事件并开始滚动,
Grid
不再触发事件。
有没有办法让ScrollViewer只用两个手指而不是一个手指来响应?

没有。您可以选择在ScrollViewer的顶部放置一些透明的东西,然后从上面抓取输入事件,或者根本不使用ScrollViewer。无论哪种方式-您都需要自己处理滚动和缩放操作。

尝试:

subitem.ManipulationMode = ManipulationModes.All;

如果使用子控件,则可以设置
Child.manufactionmode=manufactionmodes.All
在这种情况下,eEnts将不会冒泡到scroll viewer。设置

Child.manufactionmode=manufactionmodes.System用于标准操作。

该死,我想我必须重新创建类似的东西。我希望有一个简单的方法。我正在考虑一个画布容器和两个滚动条,它们将网格的上/左位置移动到内部。但是对于移动,我不知道如何处理它。好吧,如果你使用画布,那么只需处理操纵delta事件,并根据事件的delta更新canvas.X/Y位置。@FilipSkakun,“自己处理滚动和缩放”是什么意思?也许你有有用的样品?很抱歉,我没有可以共享的示例-如果目标是Windows 8.1以滚动到特定位置,您基本上需要处理另一个元素上的操作事件,并调用
ScrollToVerticalOffset
/
ScrollToHorizontalOffset
ChangeView
。如果您的目标是8.1,另一件事是我认为Windows 8.1的一个新API是,您可以启用
操作模式
操作模式.System
相结合,然后获得事件。还可以使用此API取消
ScrollViewer
滚动。