2010-01-10 26 views
2

在Windows中使用下面的代碼來滾動一個網頁瀏覽器內的網頁窗體應用程序林:如何以編程方式滾動WPF WebBrowser?

HtmlDocument doc = webBrowser.Document; 
mshtml.IHTMLDocument2 htmldoc = (mshtml.IHTMLDocument2)doc.DomDocument; 
htmldoc.parentWindow.scrollBy(265, 20); 

有誰知道如何做同樣在WPF應用程序(不使用WindowsFormsHost)?

+0

可能的複製 - http://stackoverflow.com/questions/238792/scroll-to-a- postion-in-a-web-browser-using-wpf – ChrisF

回答

4

如果您正在使用System.Windows.Controls.WebBrowser類,請查看Document屬性。你應該能夠將其轉換爲mshtml.HTMLDocument或mshtml.IHTMLDocument2和代碼

mshtml.HTMLDocument htmlDoc = webBrowser.Document as mshtml.HTMLDocument; 
if (htmlDoc != null) htmlDoc.parentWindow.scrollBy(265, 20); 

應該是工作的罰款爲您服務。

希望這會有所幫助,至於

+0

工程就像一個魅力!謝謝! – MemphiZ

+1

僅供參考,當我將它放入_LoadCompleted()事件時,這隻適用於我。它在任何早期的活動中都不起作用。 – Doug

+0

不適用於我的情況 –

0

的JavaScript:

的window.onload = toBottom;

function toBottom(){alert(「Scrolling to bottom ...」); window.scrollTo(0,document.body.scrollHeight); }

的HTML:

> <html> 
>  <head> 
>   <script src="testme.js" language="javascript" type="text/javascript"></script> 
>  </head> 
>  <body> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br> 
>   Some big text<br>   
>  </body> 
> </html> 
1

你應該很容易做到這一點:

private void WebBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e) 
    { 

     ((WebBrowser)sender).InvokeScript("eval", "$(document).scrollTop(1700);"); 
    } 
+0

'.scrollTop()'沒有參數。刪除'1700' –