我目前正在开发Surface 2.0应用程序。我正在尝试开发一个可以通过触摸拖动和调整大小的自定义控件。我认为最简单的方法就是操纵事件。
问题:我的自定义控件驻留在SurfaceScrollViewer
内,似乎ScrollViewer正在窃取所有操作事件 - 它们永远不会在我的控件上触发。如果我将SurfaceScrollViewer
更改为普通ScrollViewer
,则操作事件会被解雇。例如:
<s:SurfaceScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<local:CustomControl IsManipulationEnabled="True" ManipulationStarting="OnManipulationStarting" />
</s:SurfaceScrollViewer>
如何在SurfaceScrollViewer
内接收操纵事件?我老实说不得不说我甚至不明白为什么会发生这种情况 - 是不是事件冒泡应该阻止这样的事情?根据我的理解,CustomControl
应该在SurfaceScrollViewer
之前收到活动,并有机会处理它。为什么这不起作用?
由于
答案 0 :(得分:1)
SurfaceScrollViewer需要获取所有操作事件以支持平移,如SurfaceScrollViewer中的备注部分所述。
我想如果你想要禁用这种行为,你可以将PanningMode属性设置为None
,但现在它可能更像是一个SurfaceScrollViewer。