2017-07-28 33 views
1

我正在創建一個簡單的新聞Feed,並且用戶可以打開一個webview來查看新聞的詳細信息,出於某種原因,我希望用戶可以使用按鈕來控制webview向上和向下滾動而不是使用的ScrollViewer,我有創造web視圖來顯示細節,但不知道如何上下滾動使用按鈕uwp以編程方式向上和向下滾動WebView

+0

請看這第一個[如何問](https://stackoverflow.com/help/how-to-ask) SO是一個平臺,您可以得到一個關於您的問題的好建議。但爲此,你需要更具體地瞭解你在問什麼?到目前爲止你做了什麼?在提出請求之前,請查看建議的SO問題並查看它們。儘管如此,你還是沒有找到解決方案,那麼你可以在這裏問一個問題。 –

回答

2

for some reason i want user can use buttons to control the webview scroll up and down instead of using scrollviewer.

爲了您的要求,您可以使用InvokeScriptAsync方法來通知javaScrip調用自定義滾動方法。更多請參考Interacting with WebView content.我創建了一個樣本來實現簡單的頁面滾動。請參考下面的代碼:

HtmlPage

<body> 
    <div id="test" style="width: 600px;height: 400px;padding: 10px;margin: 10px;border: 1px solid black;overflow:scroll;font-size:15px;line-height:200px;"> 
     Content 
    </div> 
    <script type="text/javascript"> 
     function ScrollDownBtn() { 
      test.scrollTop += 10; 
     } 

     function ScrollUpBtn() { 
      test.scrollTop -= 10; 
     } 
    </script> 
</body> 

MainPage.xaml中

<WebView x:Name="MyWebView" Source="ms-appx-web:///NewsPage.html" /> 
<StackPanel 
    Grid.Row="1" 
    HorizontalAlignment="Center" 
    Orientation="Horizontal"> 
    <Button 
     x:Name="ScrollUp" 
     Margin="10" 
     Click="ScrollUp_Click" 
     Content="ScrollUp" /> 
    <Button 
     x:Name="ScrollDown" 
     Margin="10" 
     Click="ScrollDown_Click" 
     Content="ScrollDown" /> 
</StackPanel> 

MainPage.xaml.cs中

private async void ScrollUp_Click(object sender, RoutedEventArgs e) 
{ 
    await MyWebView.InvokeScriptAsync("ScrollUpBtn", null); 
} 

private async void ScrollDown_Click(object sender, RoutedEventArgs e) 
{ 
    await MyWebView.InvokeScriptAsync("ScrollDownBtn", null); 
} 

enter image description here 這是代碼sample

+0

我創建了一個HTML頁面(通過右鍵單擊該項目並選擇「添加新項目」)並嘗試您的代碼。但它顯示我這個錯誤:未知名稱。 (來自HRESULT的異常:0x80020006(DISP_E_UNKNOWNNAME) –

+0

在頁面呈現之前,運行腳本變爲錯誤。 –

相關問題