WPF与网页交互(Frame,WebBrowser)(

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WPF与网页交互(Frame,WebBrowser)(
WPF中有个很好的机制,就是Frame,Frame不仅可以像网页中的Frame一样加载Wpf的page对象,还可以加载WEB,使用方法:frame1.Source = new Uri("");
当然也可以用Navigate方法设置Source的Uri,还可以通过设置Content,但是稍微麻烦一点,因为需要创建一个WebBrowser对象作为Content。

在WPF界面中放入Frame控件,并设置好Source后,运行,就可以理解看到网页被嵌入到了Frame中。

仅仅是现实网页并不是我的目的,我需要和网页交互。

在web开发的过程中,可以知道,Javascript或其他脚本语言或者插件都需要通过获得web的document对象,然后操作这个document对象。

因此,没有例外,我们需要获得Frame加载的页面的Document对象。

方法如下:
WebBrowser wb = (WebBrowser)frame1.Content;
要获得Frame加载的网页的内容就一定需要获得Frame的Content属性,frame的Content属性是Object,但是因为我们加载的是网页,因此,Content属性的真实类型是System.Windows.Controls.WebBrowser,虽然VS2008工具栏里没有WebBrowser控件,但是Frame加载的网页依然是以WebBrowser 类型返回的,也许是Frame能做的事情比较多,因此没必要再用WebBrowser控件了,但是依然有WebBrowser类来处理网页对象。

mshtml.HTMLDocumentClass htmldocument =
(mshtml.HTMLDocumentClass)wb.Document;
获得WebBrowser后,我们就需要获得WebBrowser中的网页文档对象了HTMLDocumentClass,这个类里才具体包含了网页文档的具体属性和方法。

WebBrowser对象的网页文档对象就是Document属性返回的对象,因此用上面一句就可以获得了,但是有个地方要注意,创建项目后默认是没有mshtml.HTMLDocumentClass引用的,因此手动引用.NET库里的Microsoft.mshtml程序集。

htmldocument.getElementByIdx("test").setAttribute("val ue","修改后内容",0);
接下来的事情就如同用Javascript在WEB中的操作过程了。

不得不说,WPF开发上确实比较方便了,在不熟悉的情况下也许比较困难,但是熟悉了WPF,感觉能轻松完成之前在WINFORM里比较困难的操作!WPF中的Frame确实很不错,好用,之前开发用其加载WPF的PAGE项,能把桌面应用工作机制做得像浏览器一样,现在又发现其可以和WEB如此无缝的结合,WPF确实能将WEB和桌面应用整合得很好!。

相关文档
最新文档