我的应用程序和一些pivotItems WebBrowser中有PivotControl。 我注意到WebBrowser阻止滑动到下一个枢轴。我不确定这是否可以,因为 其他支点幻灯片和WebBrowser没有,这可能会令人困惑。这是 行为正确?有办法解决这个问题吗? (也许是小黑客)
这是我的xaml代码:
<controls:Pivot Title="MY PIVOT">
<controls:PivotItem Header="first">
<TextBlock Text="First Pivot" />
</controls:PivotItem>
<controls:PivotItem Header="second">
<TextBlock Text="Second Pivot" />
</controls:PivotItem>
<controls:PivotItem Header="third">
<phone:WebBrowser Source="http://www.stackoverflow.com" />
</controls:PivotItem>
</controls:Pivot>
答案 0 :(得分:5)
这是正确的行为。
WebBrowser
可以为网页启用水平滚动。
这就是为什么不建议将这些控件放在Pivot
中。例如,尝试将Map
控件放在Pivot
。
我建议您从WebBrowser
中取出Pivot
并将其放在单独的页面中。
答案 1 :(得分:4)
由于这个原因,建议不要在Map
或WebBrowser
内包含自己输入手势的控件(例如Pivot
或Panorama
控件)。但是,有一篇关于Preventing the Pivot or Panorama controls from scrolling的帖子可以为您提供解决方案。
答案 2 :(得分:0)
我怀疑这是一个正确的行为,因为它决定了这两个控件的可用性。 WebBrowser这样做的事实是无关紧要的,因为网页CAN禁止通过标签进行水平滚动,并强制渲染器重排文档,使其始终适合屏幕。在这种情况下,WebBrowser完全没有理由消耗Pivot所需的水平滑动。
几个月前我已经在一个应用程序中解决了类似的问题,并且使用Pivot - 它是可以避免的。我在这里写到了:Windows Phone 7 WebBrowser control swallows manipulation events?并且在那篇帖子中还有另一个链接到另一个我的...对不起,它分开了一点,我没时间把它放在一个地方。
如果我没记错的话,基本的诀窍是在WebBrowser上使用GestureListener,听一下电影并强制Pivot.SelectedIndex ++ / - 相应。它将允许轻弹和移动,但不会提供拖动页面然后捕捉到下一个/ prev页面的Pivot-y动画。对于这个动画,需要另一个技巧,IIRC,其他帖子是关于那个
请注意:GestureListener,而非操纵事件!!!那些被WebBrowser熄灭(API 7.0,7.1,7.5rc)(在7.1+中 - 由内部PanZoomContainer,在7.0中 - 它们被TileHost简单地沉默了)! GestureListener监听事件的“其他来源”,即使mani事件已经死亡,也能看到所有事件。在7.1+上有可能入侵WebBrowser并劫持使用mani-events,但它更难(我认为它也在我的另一篇文章中)