У нас есть встроенный элемент Microsoft.Phone.Controls.WebBrowser внутри StackPanel, внутри PivotItem на Windows Phone 8. В упрощенной форме это в основном:
<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и родительской ширины, чтобы понять, что прокрутка не требуется.
Кажется, что что-то необычное происходит здесь. Любые предложения о том, как изменить это поведение?