業務需求:將具備表格信息的HTML片斷在WPF中展現出來,並像網頁端同樣,能夠進行input的填寫,checkbox選擇,最後以HTML的形式完成保存。css
天真的覺得直接引入WPF中的WebBrowser便可將HTML片斷加載出來,然而WPF中的WebBrowser組件只有在調用Navigate(url)以後,才能獲得WebBrowser組件屬性值和Document文檔結構,從而獲得html代碼。html
你們能夠參考一下WPF中WebBrowser的使用方法:傳送門:http://m.blog.csdn.net/wangshubo1989/article/details/47340591web
固然你也能夠直接用WebBrowser.NavigateToString(html)的方式直接處理具備html內容片斷,但WPF的WebBrowser對html的後續處理,填寫、保存和後續處理難以知足需求。框架
Winform的WebBrowser相對靈活一些。接下來把操做步驟分享給你們。url
1、 引入dllspa
System.Windows.Forms.dll和WindowsFormsIntegration.dll。.net
兩個都是.NET框架下的dll,不須要額外下載。orm
2、 向界面中添加定義的控件(將導入的dll引入到界面中啦)。Xaml代碼部分:xml
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控件htm
3、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樣式(真的很方便!)