2010-12-03 30 views
4
<WebBrowser x:Name="messageBufferWebBrowser" 
    controls:WebBrowserUtility.Body="{Binding MessageBuilder}"/> 

我使用這個類,使結合WebBrowser控件如何滾動WPF WebBrowser控件到最後?

public static class WebBrowserUtility 
{ 


    public static readonly DependencyProperty BodyProperty = 
    DependencyProperty.RegisterAttached("Body", typeof(string), typeof(WebBrowserUtility), new PropertyMetadata(OnBodyChanged)); 

    public static string GetBody(DependencyObject dependencyObject) 
    { 
     return (string)dependencyObject.GetValue(BodyProperty); 
    } 

    public static void SetBody(DependencyObject dependencyObject, string body) 
    { 
     dependencyObject.SetValue(BodyProperty, body); 
    } 

    private static void OnBodyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     var webBrowser = d as WebBrowser; 
     if (!string.IsNullOrWhiteSpace(e.NewValue as string) && webBrowser != null) 
     { 
      if (Application.Current.MainWindow != null && !DesignerProperties.GetIsInDesignMode(Application.Current.MainWindow)) 
      { 
       webBrowser.NavigateToString((string)e.NewValue); 
      } 
     } 
    } 

} 

這是我的web瀏覽器的身體,我將它綁定到視圖模型StringBuilder的財產。我怎樣才能讓WebBrowser控件滾動到最後?

回答

6

如果你投的Web瀏覽器的文件屬性設置爲mshtml.HTMLDocument,那麼你可以滾動到網頁中的特定位置(或使用最大可能值底部):

var html = webBrowser.Document as mshtml.HTMLDocument; 
html.parentWindow.scroll(0, 10000000); 

注意你在項目中添加對Microsoft.mshtml的引用。

+1

int.MaxValue對我不起作用,但魔法常量10000000起作用 – Kluyg 2012-06-22 15:25:11