Проблема
Мне нужно показать WebView
внутри ScrollViewer
в приложении Windows Phone 8.1 со следующими требованиями:
- Высота
-
WebView
должна быть скорректирована на основе ее содержимого. -
WebView
вертикальная прокрутка должна обрабатываться внешнимScrollViewer
. -
WebView
должен обрабатывать горизонтальную прокрутку, масштаб (масштабирование), выбор текста (с кнопкой копирования по умолчанию) и ссылки на навигацию.
На приведенном ниже рисунке представлен мой макет (слева) и лучший пример аналогичной функциональности - это будет встроенное почтовое приложение (справа)
Пример компоновки XAML:
<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>
Что я пробовал
Измерение содержимого HTML и настройка высоты WebView - Эта часть работала и с несколькими настройками мне удалось установить правильную высоту WebView
.
Подписывание элемента Border внутри WebView - Не работает. Проблема в том, что в Windows Phone 8.1 кажется, что компонент WebView
не имеет визуальных дочерних элементов (по крайней мере, не DependencyObject
)
Также я пробовал играть со свойствами ManupulationMode
и IsHitTestVisible
с без успеха.
UPDATE
Добавлена кнопка выбора текста и копирования для требуемой функциональности WebView
. Как-то пропустил его в исходном вопросе.