在SurfaceScrollViewer中接收操作事件

时间:2012-08-09 13:25:26

标签: c# wpf events touch pixelsense

我目前正在开发Surface 2.0应用程序。我正在尝试开发一个可以通过触摸拖动和调整大小的自定义控件。我认为最简单的方法就是操纵事件。

问题:我的自定义控件驻留在SurfaceScrollViewer内,似乎ScrollViewer正在窃取所有操作事件 - 它们永远不会在我的控件上触发。如果我将SurfaceScrollViewer更改为普通ScrollViewer,则操作事件会被解雇。例如:

<s:SurfaceScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
    <local:CustomControl IsManipulationEnabled="True" ManipulationStarting="OnManipulationStarting" />
</s:SurfaceScrollViewer>

如何在SurfaceScrollViewer内接收操纵事件?我老实说不得不说我甚至不明白为什么会发生这种情况 - 是不是事件冒泡应该阻止这样的事情?根据我的理解,CustomControl应该在SurfaceScrollViewer之前收到活动,并有机会处理它。为什么这不起作用?

由于

1 个答案:

答案 0 :(得分:1)

SurfaceScrollViewer需要获取所有操作事件以支持平移,如SurfaceScrollViewer中的备注部分所述。

我想如果你想要禁用这种行为,你可以将PanningMode属性设置为None,但现在它可能更像是一个SurfaceScrollViewer。