嵌入式WebBrowser控件拦截水平滚动事件

时间:2013-01-17 21:14:38

标签: .net xaml windows-phone-8

我们在Windows Phone 8上的Microsoft.Phone.Controls.WebBrowser内的StackPanel内嵌入了PivotItem嵌入式控件。简单来说,它基本上是:

<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的唯一方法就是点按顶部的标题,这是一个拖累。

我尝试过的一些技巧包括

  • 强制内部ScrollViewer HorizontalScrollBarVisibility Disabled
  • 手动捕获ManipulationDelta和/或ManipulationCompleted事件并自行宣传 - 它们不像您期望的那样触发
  • 尝试WebBrowser和父级宽度的每个可能的排列,以使其意识到不需要滚动。

似乎有些不同寻常的事情发生在这里。关于如何改变这种行为的任何建议?

2 个答案:

答案 0 :(得分:2)

试用此链接。我认为Mr.Colin Eberhardt的解决方案将帮助您解决问题, http://www.scottlogic.co.uk/blog/colin/2011/11/suppressing-zoom-and-scroll-interactions-in-the-windows-phone-7-browser-control/

答案 1 :(得分:0)

在此处查看解决方案http://developer.nokia.com/Community/Wiki/Windows_Phone%E4%B8%ADPivot%E5%86%85%E5%B5%8CWebBrowser%E6%97%B6%E7%9A%84%E6%A8%AA%E5%90%91%E6%BB%91%E5%8A%A8%E5%A4%84%E7%90%86。下载源代码并完成代码。但应用程序应该是Pivot应用程序而不是Panorama应用程序。