Problem
I have to show a WebView
inside a ScrollViewer
in Windows Phone 8.1 application, with the following requirements:
WebView
height should be adjusted based on its content.WebView
vertical scroll should be handled by an outerScrollViewer
.WebView
should handle horizontal scroll, scale (pinch-zoom), text selection (with the default copy button) and links navigation.
On the picture below is my mocked layout (to the left) and the best example of similar functionality - that would be a built-in mail application (to the right)
Sample XAML layout:
<ScrollViewer>
<Grid Margin="12">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<TextBlock Text="My content" />
</Grid>
<WebView Grid.Row="1" x:Name="WebViewComponent"></WebView>
</Grid>
</ScrollViewer>
What did I try
Measure HTML content and adjusting the WebView height - This part worked and with several adjustments I was able to set the correct height to the WebView
element.
Subscribing to a Border element inside a WebView - Did not work. The problem here is that in Windows Phone 8.1 it seems that a WebView
component does not have visual children (at least not DependencyObject
's)
As well I've tried playing around with ManupulationMode
and IsHitTestVisible
properties with no success.
UPDATE
Added text selection & copy button to required WebView
functionality. Somehow missed it in the original question content.