【发布时间】:2015-08-22 17:01:26
【问题描述】:
问题
我必须在 Windows Phone 8.1 应用程序的 ScrollViewer 中显示 WebView,并满足以下要求:
-
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>
我做了什么
Measure HTML content and adjusting the WebView height - 这部分工作,经过多次调整,我能够为WebView 元素设置正确的高度。
Subscribing to a Border element inside a WebView - 没用。这里的问题是,在 Windows Phone 8.1 中,WebView 组件似乎没有可视子组件(至少没有 DependencyObject's)
我也尝试过使用ManupulationMode 和IsHitTestVisible 属性,但没有成功。
更新
为所需的WebView 功能添加了文本选择和复制按钮。在原始问题内容中不知何故错过了它。
【问题讨论】:
-
只是出于好奇,您是否尝试过注入一些 css 来禁用溢出:滚动,以便您的滚动查看器实际上可以完成它的工作。像this 这样的东西?我希望我现在有更多的空闲时间去玩它,无论如何这似乎是一个普遍的问题。
-
@Chris 我做到了。
WebView完全捕获指针交互并与“压缩”滚动之类的东西做出反应(不太确定这是否是一个恰当的术语 - 滚动速度非常慢,一旦松开手指就会恢复)。 -
类似“一个滚动滚动所有”的问题:)
标签: c# xaml webview windows-phone windows-phone-8.1