1

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

问题:我的自定义控件位于 aSurfaceScrollViewer中,并且 ScrollViewer 似乎正在窃取所有操作事件 - 它们从未在我的控件上触发。如果我将其更改SurfaceScrollViewer为普通ScrollViewer的,则操作事件会很好地触发。例子:

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

如何在 ? 中接收操作事件SurfaceScrollViewer?老实说,我什至不明白为什么会发生这种情况——事件冒泡不应该防止这样的事情发生吗?以我的理解,CustomControl应该在 之前收到事件SurfaceScrollViewer并有机会处理它。为什么这不起作用?

谢谢

4

1 回答 1

1

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

我想如果您想禁用此行为,您可以将PanningMode属性设置为None,但现在它可能不再像 SurfaceScrollViewer 了。

于 2012-08-09T14:05:04.797 回答