Events 如何自动滚动到Web浏览器或框架中加载的HTML文档的底部?

Events 如何自动滚动到Web浏览器或框架中加载的HTML文档的底部?,events,wpf-controls,scroll,browser,webbrowser-control,Events,Wpf Controls,Scroll,Browser,Webbrowser Control,我使用HTML文档在我的应用程序中显示文本输出——这给了我HTML的灵活性和CSS的强大功能,我可以将生成的HTML发布为可在任何浏览器中打开的日志文件。当新信息可用时,我更新HTML文件,然后在WebBrowser控件上调用Refresh()。当然,我希望用户不必手动向下滚动就能看到最新信息,因此在浏览器刷新并呈现更改后,我需要自动滚动到文档底部 我有代码可以滚动到底部: (this.browser.Document as HTMLDocument).body.scrollIntoView(f

我使用HTML文档在我的应用程序中显示文本输出——这给了我HTML的灵活性和CSS的强大功能,我可以将生成的HTML发布为可在任何浏览器中打开的日志文件。当新信息可用时,我更新HTML文件,然后在WebBrowser控件上调用Refresh()。当然,我希望用户不必手动向下滚动就能看到最新信息,因此在浏览器刷新并呈现更改后,我需要自动滚动到文档底部

我有代码可以滚动到底部:

(this.browser.Document as HTMLDocument).body.scrollIntoView(false);
问题是,我尝试了许多事件,所有这些事件都是在web浏览器控件实际完成呈现更新的源代码之前触发的,,因此在显示新内容之前,我会滚动到底部!这令人难以置信地沮丧——有人知道如何解决这个问题吗我如何知道新内容何时完全显示完毕,以便滚动到底部?

编辑:我尝试在ScrollViewer中包含一个框架:

<ScrollViewer x:Name="scrollBar" Grid.Row="1" Grid.Column="0">
    <Frame Name="browserBox" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" NavigationUIVisibility="Hidden"/>
</ScrollViewer>


这对于应用程序页面(页面类)来说效果很好,因为框架增长到足以容纳整个页面,从而导致封闭的ScrollViewer调整并触发ScrollChanged事件。我一时非常兴奋,但后来发现,不幸的是,当我将HTML文件加载到框架中时,框架不会调整大小以适应内容,而是引入了自己的滚动条,因此现在我将一个滚动条放在另一个滚动条中,无法订阅内部滚动条的事件(

天哪!我找到了答案!基于我在以下网站中找到的提示:

使用滚动查看器包装帧并订阅帧的ContentRendered事件:

<ScrollViewer x:Name="scrollViewer">
    <Frame x:Name="frame" Source="pack://siteoforigin:,,,/HTMLPage1.htm" NavigationUIVisibility="Hidden" ContentRendered="Frame_ContentRendered" />
</ScrollViewer>
最后,通过禁用HTML文档本身内的滚动来消除框架内的滚动条:

<body scroll="no">

呜呜!我现在就去开派对。滚动到HTML文档的底部应该不会花一周的时间(但确实花了)

<body scroll="no">