码迷,mamicode.com
首页 > Windows程序 > 详细

WPF中WebBrowser的使用方法及分析

时间:2015-08-07 20:17:55      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:wpf   webbrowser   navigate   

基础知识

WebBrowser类
承载并在HTML文档间导航。在WPF托管代码和HTML脚本间启用互操作性。
WebBrowser.Navigate方法(Uri)
异步导航到位于指定Uri处的文档。
命名空间:System.Windows.Controls
程序集:PresentationFramework(在PresentationFramework.dll中)
语法:public void Navigate(Uri source)

string szTmp = “http://192.168.0.11/sample.htm“;
Uri uri = new Uri(szTmp);
CamWeb.Navigate(uri);

WebBrowser.LoadCompleted事件
要导航到的文档完成下载时发生
向导航的事件处理程序传递了NavigationEventArgs类的一个实例。
C#语法:
public event LoadCompletedEventHandler LoadCompleted
XAML语法:

WebBrowser.Document属性
获取表示所承载的HTML页的文档对象
MSHTML 是微软的窗口操作系统(Windows)搭载的网页浏览器—Internet Explorer的排版引擎的名称,(又称为Trident)。
MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素。
MSHTML提供了丰富的HTML文档接口,有IHTMLDocument、IHTMLDocument2、…、IHTMLDocument7等7种。其中,IHTMLDocument只有一个Script属性,是管理页面脚本用的;
IHTMLDocument2接口跟C#的HtmlDocument类(即通过Web Browser控件直接获得的Document属性)很相似;IHTMLDocument3是跟Visual Basic 6.0里的文档对象相似的一个接口,基本上可以用到的方法都在其中。
MSHTML还提供封装了对HTML元素完整操作的IHTMLElement接口,通过IHTMLElement,可以准确地判断HTML元素节点的类型,还可以获取HTML元素节点的所有属性。

实际应用

WebBrowser控件不停的导航一个.html文件,直到导航成功。
但是如果想要导航的.html文件刚开始不存在,一段时候后才存在的话就有些棘手。
可以采用延时,但是.html产生的时间是不确定的,这样就无法确定延时的秒数。
所以可以采用以下方法:
在XAML文件中加入:

<WebBrowser Name="CamWeb" Width="640" Height="480"LoadCompleted="CamWeb_LoadCompleted" />

在.CS文件的初始化中加入:

string szTmp = "http://192.168.0.11/sample2.htm";
Uri uri = new Uri(szTmp);
CamWeb.Navigate(uri);

在.CS文件中实现 LoadCompleted事件:

private void CamWeb_LoadCompleted(object sender, NavigationEventArgs e)
{
    ((sender as WebBrowser).Document as mshtml.HTMLDocumentEvents_Event).oncontextmenu += new mshtml.HTMLDocumentEvents_oncontextmenuEventHandler(ExtendFrameControl_oncontextmenu);
    mshtml.HTMLDocument dom = (mshtml.HTMLDocument)CamWeb.Document; //定义HTML
dom.documentElement.style.overflow = "hidden"; //隐藏浏览器的滚动条
dom.body.setAttribute("scroll", "no"); //禁用浏览器的滚动条
    if (!dom.body.innerHTML.Contains("123456"))
    {
        string szTmp = "http://192.168.0.11/sample2.htm";
        Uri uri = new Uri(szTmp);
        CamWeb.Navigate(uri);
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

WPF中WebBrowser的使用方法及分析

标签:wpf   webbrowser   navigate   

原文地址:http://blog.csdn.net/wangshubo1989/article/details/47340591

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!