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樣式(真的很方便!)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM