У нас есть встроенный элемент 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
- это нажать на заголовки вверху, что является перетаскиванием.
Некоторые трюки, которые я пробовал, включают
- Принуждение внутреннего
ScrollViewer
HorizontalScrollBarVisibility
кDisabled
- Вручную захватывать события
ManipulationDelta
и/илиManipulationCompleted
и распространять их самостоятельно - они не срабатывают, как вы ожидали бы от них - Попытка каждой возможной перестановки
WebBrowser
и родительской ширины, чтобы понять, что прокрутка не требуется.
Кажется, что что-то необычное происходит здесь. Любые предложения о том, как изменить это поведение?