在Panorama中旋转....一起滑动

时间:2011-09-06 13:04:06

标签: windows-phone-7

当我在全景图中使用pivot时.pivot用作图库视图。我想在我滑动时移动枢轴。但问题是这是因为全景和枢轴都是相同的手势事件所以它们都移动了。 我只想滑动我的枢轴视图。

我想要一些示例代码或任何其他建议来执行此操作。  所以请给我一个解决这个问题的方法 还给我一个链接,我很容易理解这一点。 Thanx提前

2 个答案:

答案 0 :(得分:2)

您不应在Panorama控件中使用Pivot。讨论结束。

答案 1 :(得分:2)

我相信这是可以实现的,因为我已经解决了在自定义水平滚动概览容器(如Pivot / Panorama)中使用WebBrowser控件的类似问题,但请相信我,这不值得。我必须深入挖掘控件的视觉结构,并将我自己的操作处理程序附加到他们的内脏,手动选择要传递的水平/垂直事件以及要取消的事件,等等。这不是那么容易,需要花费很多时间,并且不能保证最终你会以一种你想要的方式表现出一些行为。如果您不受某些合同约束以保留UI的形状,请放弃想法并重新设计您的UI,以节省您的理智和神经。

但是,如果你已经疯了或者真的想挖掘没人应该去的地方,那就开始分析你的UI作为两个矩形:大型全景和小型旋转,并考虑哪个部分应该表现如何在不同的可能触摸/ hv滑动/ hv pans / pinches /等等。把它写下来仅供参考,或者很快你可能会开始犯小错误,这些错误会干扰你对事件流程的理解。

我已经检查了我的版本,而“my”Panorama在内部使用了UIElement.ManipulationXXXX事件。在那种情况下:

显示UI的视觉树,并尝试将操纵事件附加到每个控件。在那些事件中,写/ log控制哪个处理程序被调用。然后在APP上进行一些滑动/滚动并观察事件。分析他们是如何冒泡并尝试取消(e.Handled = true)在枢轴和全景之间某处的操纵完成和/或操纵delta事件。您的目标是让全景图看到e.Handled = true,而您的数据透视图必须看到e.Handled = false。您的Pivot可能会比Pano更快地看到事件,所以这一点应该相对容易。

如果它无法正常工作,那么您应该检查您的Pano版本,并检查它是如何检测到移动的。例如,如果它使用GestureListener - 尝试使用它的相同技巧。等

请记住,你总是可以创建自己的水平覆盖容器,它看起来像Pano,表现得像Pano,并且可以更好地与Pivo一起使用 - 因为它将是你的代码,你会告诉它什么时候到移动。如果您想这样做,请从谷歌开始,检查随机人员在该控件由MS发布之前发布的所有初步全景预览。