WPF中WebBrowser的使用方法及分析
来源:互联网 发布:redis mysql同步 编辑:程序博客网 时间:2024/05/17 13:06
基础知识
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; //定义HTMLdom.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中的Document 使用方法
- c#中WebBrowser控件的使用方法
- WPF中MessageBox的使用方法
- C#及wpf WebBrowser截图
- WPF中webBrowser控件与js的交互
- WPF中使用WebBrowser控件的刷新问题[已解决]
- wpf中webbrowser弹出windows 安全警告窗口的处理
- [控件使用]WebBrowser 的使用方法
- WPF中WebBrowser注入javascript脚本
- WPF中如何使webbrowser适应DPI
- WPF中使用webbrowser调用javascript代码
- WPF中Frame和WebBrowser关系
- [WPF - 之一问一答系列] 如何从WPF的WebBrowser控件中获得WebResponse内容?为何WebBrowser控件的Navigated事件参数NavigationEventArgs的
- WPF DataGridComboBoxColumn的使用方法
- WPF界面添加WinForm的Webbrowser控件
- WPF下使用WebBrowser的一个例子
- WPF中去边框窗体与WebBrowser控件的兼容问题解决办法
- Devexpress Report Service 使用方法
- 关于中国教育的反思
- javabeanUtil泛型操作类
- Python 的列表排序
- iO开发资料
- WPF中WebBrowser的使用方法及分析
- POJ-1979 Red and Black
- android unit test
- [优先队列+贪心]poj3614 Sunscreen
- C# 获取当前路径方法
- 结构体的定义及其初始化方法And typedef的使用-----------权当笔记了
- [kuangbin带你飞]专题四 最短路练习
- 数据结构基础(22)--红黑树的设计与实现(上)
- Mybatis学习笔记-事务管理详解