2015-10-04 2 views
0

Я использую метод SaveToString(), чтобы получить исходный код этой страницы в WebBrowser Control. Но так как его устаревшим в Windows 10, Что эквивалент для SaveToString() в WebView контроля ОС Windows 10.WebView SaveToString() Equivalent

ответ

0

WebView позволяет вызывать сценарий, и мы можем дамп document.documentElement.outerHTML сделать то же самое как SaveToString().

Ниже показан очень простой образец для вашего теста. Обратите внимание, что я не пытался создать классный дизайн пользовательского интерфейса и не форматировал все, а только пытался показать вам эту идею.

В XAML:

<StackPanel> 
     <WebView x:Name="MyWebView" Source="http://www.bing.com" Height="200" 
       DOMContentLoaded="MyWebView_DOMContentLoaded"/> 
     <Button x:Name="ViewSourceBtn" Content="View Source" Click="ViewSourceBtn_Click"/> 
     <RichTextBlock x:Name="SourceBlock" Height="300" > 
     </RichTextBlock> 
    </StackPanel> 

код за:

bool contentloaded = false; 
    private async void ViewSourceBtn_Click(object sender, RoutedEventArgs e) 
    { 
     if (contentloaded) 
     { 
      string html = await MyWebView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" }); 
      var paragraph = new Paragraph(); 
      paragraph.Inlines.Add(new Run { Text = html }); 
      SourceBlock.Blocks.Clear(); 
      SourceBlock.Blocks.Add(paragraph); 
     } 
     else 
     { 
      string err = "Waiting for HTML content to load!"; 
      var paragraph = new Paragraph(); 
      paragraph.Inlines.Add(new Run { Text = err }); 
      SourceBlock.Blocks.Clear(); 
      SourceBlock.Blocks.Add(paragraph); 
     } 
    } 

    private void MyWebView_DOMContentLoaded(WebView sender, WebViewDOMContentLoadedEventArgs args) 
    { 
     contentloaded = true; 
    } 

Вот результат, нажав на кнопку просмотра исходного кода: enter image description here

+0

спасибо за помощь! – Razor