WPF中展示HTML
业务需求:将具有表格信息的HTML片段在WPF中展示出来,并像网页端一样,可以进行input的填写,checkbox选择,最后以HTML的形式完成保存。
天真的以为直接引入WPF中的WebBrowser即可将HTML片段加载出来,然而WPF中的WebBrowser组件只有在调用Navigate(url)之后,才能得到WebBrowser组件属性值和Document文档结构,从而得到html代码。
大家可以参考一下WPF中WebBrowser的使用方法:传送门:http://m.blog.csdn.net/wangshubo1989/article/details/47340591
当然你也可以直接用WebBrowser.NavigateToString(html)的方式直接处理具有html内容片段,但WPF的WebBrowser对html的后续处理,填写、保存和后续处理难以满足需求。
Winform的WebBrowser相对灵活一些。接下来把操作步骤分享给大家。
一、 引入dll
System.Windows.Forms.dll和WindowsFormsIntegration.dll。
两个都是.NET框架下的dll,不需要额外下载。
二、 向界面中添加定义的控件(将导入的dll引入到界面中啦)。Xaml代码部分:
xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
//插入Winform的WebBrowser控件
<wfi:WindowsFormsHost Name="winFormsContainer">
<wf:WebBrowser x:Name="webBrowser1"/>
</wfi:WindowsFormsHost>
注意:只有在WindowsFormsHost标签下才能插入WinForm控件。当然你也可以插入其他WinForm控件
三、cs代码段
string html=“你需要展示的html代码”;
//调用引入的webBrowser1
webBrowser1.Navigate("about:blank"); //一定要创建一个空白界面。不然即使写入html成功显示也不能再次回读其中内容。
webBrowser1.Document.OpenNew(false);
webBrowser1.Document.Write(html);
webBrowser1.Refresh();
//这个时候你可以写js代码来操纵你想要的一切(如下)
String newContent = webBrowser1.Document.GetElementById("container").InnerHtml;
//也可以webBrowser写入html时加入一些css样式(真的很方便!)
欢迎大家一起交流讨论,分享一些心得体会,有问题也可以直接联系博主。
最新文章
- Vertica 7.1安装最佳实践(RHEL6.4)
- iOS 使用EZAudio库生成wav出错的情况
- Codeforces Round #267 (Div. 2)
- SCWS分词扩展在UNIX/LINUX下的安装方法
- ios containerViewController
- lintcode 中等题:Majority number II 主元素 II
- 用C#实现生成PDF文档
- C语言,数据类型
- 二十7天 春雨滋润着无形 —Spring依赖注入
- 《初识PE》导出表
- WeMall微信商城签到插件Sign的主要源码
- 新概念英语(1-109)A Good Idea
- 程序员必须搞清的概念-equals和=和hashcode的区别
- nginx的限流问题
- DW1000 用户手册中文版 附录3:双向测距(Two-Way Ranging)
- VSCode CSS自动补充前缀
- Xshell出现‘The remote SSH server rejected X11 forwarding request’解决办法
- Ext.isEmpty()的使用
- git 错误汇总
- 基于python+appium+yaml安卓UI自动化测试分享