2016-09-23 51 views
1

有一个奇怪的;我在scrollviewer中使用了一个webview(所以我可以在webview上面滚动一个stackpanel),而且我的解决方案在桌面PC和平板电脑上使用得很好(使用鼠标和触摸),但出于某种原因,在移动设备上电话页面不会滚动!不知道为什么。这是我做了什么:c#UWP Webview里面滚动查看器只适用于手机

<ScrollViewer Grid.Row="1" x:Name="theScrollViewer" HorizontalAlignment="Stretch" 
        ScrollViewer.VerticalScrollBarVisibility="Hidden" 
        HorizontalScrollBarVisibility="Disabled"> 
      <WebView ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
       ScrollViewer.VerticalScrollBarVisibility="Hidden" 
       Margin="0" x:Name="theWebView" 
       Height="2000" 
       DefaultBackgroundColor="#ff2E2E2E" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>  
</ScrollViewer> 

,并停止在网页视图我加入以下加载到web视图的CSS滚动:

overflow-x:hidden; 
overflow-y: hidden 

web视图的高度财产不会留2000;但我知道在scrollviewer中滚动它的内容需要一个height属性。无论如何,这与鼠标和PC和平板电脑的触摸完美结合,但在Windows 10 Mobile上它不会滚动。

任何想法??

回答

0

无论如何,这与鼠标和PC和平板电脑的触摸完美结合,但在Windows 10 Mobile上它不会滚动。

我认为问题是,你的Webview不会通过操纵事件其父ScrollViewer

在PC上,我们可以通过在ScrollBar拖动Thumb或滚动鼠标的滚轮滚动ScrollViewer,这两种相互作用可以通过ScrollViewer进行检测。

但是,当在移动,我们只能通过刷卡ScrollViewer里面的内容领域,因为你WebView填补ScrollViewer全部内容滚动ScrollViewer,挥动手势将WebView陷入首先,不处理对ScrollViewer再次,现在您的WebView有足够的高度来容纳网页内容,WebView的默认滚动功能也不起作用。

这里有一个建议:给小WidthWebView时,它适用于手机,你可以通过滑动的空白区域滚动ScrollViewer。但我认为这不是对您的问题的优雅解决方案,这可能会使布局变得难看。

另一个建议是,你可以尝试创建自己的ThumbStackPanelWebViewScrollViewer内右侧滚动,使这Thumb滑入能够和编程使滚动的ScrollViewerThumb翻译。