嵌入式Web浏览器控件拦截水平滚动事件

12

我们在Windows Phone 8中的一个PivotItem内嵌有一个StackPanel,其中包含一个Microsoft.Phone.Controls.WebBrowser嵌入式控件。简化形式如下:

<Grid>
  <controls:Pivot Width="425" Margin="50,0,0,0">
    <controls:PivotItem Margin="0,0,0,0" Width="400">
      <StackPanel>
        <!-- Other stuff -->
        <phone:WebBrowser Margin="0,0,0,0" Padding="0,0,0,0" Width="400" Height="600" />
      </StackPanel>
    </controls:PivotItem>
  </controls:Pivot>
</Grid>
问题在于,与其他控件不同,WebBrowser 似乎截取了所有的滚动事件,即使没有内部滚动也是如此。这基本上意味着,一旦屏幕上出现 WebBrowser 控件,滚动到下一个 PivotItem 的唯一方法是点击顶部的标头,这很烦人。
我尝试过一些技巧,包括:
  • 强制内部 ScrollViewerHorizontalScrollBarVisibility 设置为 Disabled
  • 手动捕获 ManipulationDelta 和/或 ManipulationCompleted 事件并将其向上传递 — 它们不像您预期的那样触发
  • 尝试每种可能的 WebBrowser 和父宽度的排列组合,以使其意识到不需要滚动。
这似乎有点不寻常。如何改变这种行为?

1
您可以添加一种列表(例如LongListSelector)而不是WebBrowser,从而获得相同的问题。我认为两个滚动条出现在彼此内部可能存在问题。此外,如果您将WebBrowser直接放在PivotItem的根目录中(而不是StackPanel),它看起来会很好。 - gleb.kudr
@Adrian Petrescu,你解决了你提到的问题吗?如果解决了,你是怎么解决的? - user2189143
2个回答

2

这个解决方案仍然无法将从WebBrowser传递到Pivot的滑动手势通过。它只控制水平滚动。就是这样。 - Ramesh

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接