我们在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
的唯一方法是点击顶部的标头,这很烦人。我尝试过一些技巧,包括:
- 强制内部
ScrollViewer
的HorizontalScrollBarVisibility
设置为Disabled
- 手动捕获
ManipulationDelta
和/或ManipulationCompleted
事件并将其向上传递 — 它们不像您预期的那样触发 - 尝试每种可能的
WebBrowser
和父宽度的排列组合,以使其意识到不需要滚动。