2011-06-08 70 views
1

我從包含HTML樣式的數據庫中得到一個字符串(不知道它叫什麼),我不想在我的WPF應用程序中顯示它。在WPF中顯示HTML編碼樣式

我可以在ViewModel中解碼,因此我可以使用.net庫。

我嘗試使用WebUtility.HtmlDecode(字符串)方法,但它沒有做任何事情(可能不應該)。

這是字符串可能是什麼樣子:

<span style="background-color: rgb(255, 102, 0);" class="Apple-style-span">This</span><div><span style="background-color: rgb(255, 102, 0);" class="Apple-style-span">is</span></div><div><span style="background-color: rgb(255, 102, 0);" class="Apple-style-span">a</span></div><div><span style="background-color: rgb(255, 102, 0);" class="Apple-style-span">weird</span></div><div><span style="background-color: rgb(255, 102, 0);" class="Apple-style-span">look</span></div><div></div> 

想起來,我可以一點點的XML編碼做的文字,但我寧願使用已經存在的東西。能夠獲得樣式也會很棒,但我不打算包括WinForms瀏覽器。

注意我只需要顯示數據,而不是編輯它。

回答

2

這與編碼無關,這與轉換有關。如果您不想使用WebBrowser控件,則需要將HTML轉換爲flow content,它可以顯示在FlowDocument中。您可以自己編寫必要的代碼,也可以查看是否可以轉換兩種方式(或任何其他現有轉換器),以滿足您的需求。


你不一定需要一個適當的HTML頁面,使web瀏覽器顯示出來,你可以這樣做:

string htmlString = "<span style=\"background-color: rgb(255, 102, 0);\" class=\"Apple-style-span\">This</span><div><span style=\"background-color: rgb(255, 102, 0);\" class=\"Apple-style-span\">is</span></div><div><span style=\"background-color: rgb(255, 102, 0);\" class=\"Apple-style-span\">a</span></div><div><span style=\"background-color: rgb(255, 102, 0);\" class=\"Apple-style-span\">weird</span></div><div><span style=\"background-color: rgb(255, 102, 0);\" class=\"Apple-style-span\">look</span></div><div></div>"; 
wb.NavigateToString(htmlString); 

但是最好你可以在適當的包裝你進來的字符串首先是html-frame,這應該很容易做到。

+0

所以有一個WebBrowser控件?我只是覺得它只存在於Forms中。我會檢查出來的。 – 2011-06-08 15:07:20

+0

[There is。](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.webbrowser.aspx) – 2011-06-08 15:40:30

+0

H.B.不過我不確定這可能會有多大用處。我只有這個字符串,而不是一個指向它的網站。我怎麼能得到它來呈現html字符串? – 2011-06-08 16:12:07