2011-09-03 98 views
2

我有一個從數據庫呈現html內容的頁面。現在我想在Silverlight中顯示它。我想要用silverlight替換掉所有的標籤。或者有人已經建立了類似的東西?這似乎是最好的解決方案。任何人誰有任何意見?將html內容轉換爲等效的silverlight內容?

這將是一種工作,如果有辦法讓超鏈接在silverlight richtextbox控件中工作。

<RichTextBox HorizontalAlignment="Left" Margin="25,23,0,0" Name="richTextBox1" VerticalAlignment="Top" Height="251" Width="352" > 

    <Paragraph FontSize="14" FontWeight="Bold" >Hello</Paragraph> 



</RichTextBox> 

一樣,這是不允許在Silverlight:

<TextBlock> 
      Hello <HyperlinkButton > World </HyperlinkButton> 

     </TextBlock> 

我將不得不這樣做:

<StackPanel Orientation="Horizontal"> 
       <TextBlock > 
        Hello 
       </TextBlock> 
       <HyperlinkButton> 
        World 
       </HyperlinkButton> 
       </StackPanel> 

這將是HTML這樣的:

<h3> Hello <a href="#" >World</a></h3> 

在某種程度上, ght的方式會工作,但將html-content轉換爲xaml似乎很乏味。如果有人有興趣寫這樣的圖書館會很好。

+0

Flash允許有一些HTML的內容,我想請參閱Silverlight中的該功能。特別是在富文本編輯器中沒有鏈接會限制網絡的工作方式。 – marko

回答

1

我已經在過去構建過其中的一個(對於WPF而不是Silverlight)。這並不容易,它只處理文本元素。您應該使用HtmlAgilityPack來讀取HTML,然後在處理HTML時保留當前字體狀態的堆棧。

您的HTML有多複雜?

+0

我想過使用HTMLAgilityPack。這主要是段落,跨度,鏈接和偶爾列表。當事物嵌套在一起時,可能會有問題。 – marko

+0

HTMLAgilityPack在Silverlight中不起作用 –

+0

@ToddMoses也許如此,但與將HTML標記*轉換爲Silverlight標記的問題無關。 –

0

如果HTML很好地爲您服務,爲什麼要切換到Silverlight?您當然可以將您的HTML轉換爲XAML中的等效標籤,但您會失去SEO優勢。

如果你真的想這樣做 - 也許你發現這很有用 - 你仍然需要逆向工程有點:-)

http://msdn.microsoft.com/en-us/library/aa972129.aspx