2010-10-03 44 views

回答

6

試試這個鏈接首發:http://www.wintellect.com/CS/blogs/jprosise/archive/2009/12/22/silverlight-4-s-new-html-hosting-support.aspx

下面是相關的部分:

另一個是Silverlight 4中帶來的 平臺來承載一個Silverlight內HTML內容的能力的新功能 控制。此支持不限於靜態HTML內容; 內容可以是交互式的,可以包含腳本。它甚至可以是 Flash內容或包含其他Silverlight控件的內容。

要在Silverlight中託管HTML內容,您可以使用WebBrowser 控件或HtmlBrush。顯示HTML內容的一種方法是火了 WebBrowser控件,並將它指向的URL:

<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" /> 

另一種方法是調用NavigateToString和 內容的字符串傳遞給WebBrowser控件:

WebBrowserControl.NavigateToString("<h1>Hello, Silverlight</h1>"); 

HTML託管是不提供給瀏覽器應用程序(它適用於 僅適用於瀏覽器外應用程序),並且如果OOB缺少提升的權限,則它只能顯示與Silverlight應用程序相同的 域的內容。但是,您可以使用一個小 把戲顯示,如果沒有 高架運行OOBs跨域內容的許可,只需通過一個IFRAME針對遠程 內容NavigateToString:

WebBrowserControl.NavigateToString("<iframe src=\"http://www.bing.com\" style=\"width: 100%; height: 100%\"></iframe>"); 

可以渲染HtmlBrush的HTML內容也一樣。下面的XAML 片段描繪了一個矩形與兵檢索到的內容:

<WebBrowser x:Name="WebBrowserControl" Source="http://www.bing.com" /> 
<Rectangle> 
    <Rectangle.Fill> 
    <HtmlBrush SourceName="WebBrowserControl" /> 
    </Rectangle.Fill> 
</Rectangle> 

一個web瀏覽器和HtmlBrush之間的區別在於,前者 顯示「活」的內容,而後者沒有。另一個區別 是HtmlBrush可以應用於它的變換,而WebBrowser 不能。對於涉及HTML內容的時髦視覺效果,例如在PDC上演示的HTML 難題,您可能會發現自己使用了HtmlBrush 。要顯示實時交互式內容,您會發現 WebBrowser更有用。

關於WebBrowser控件的一個非常酷的事情是,您可以使用其InvokeScript方法調用控件託管的 內容中的JavaScript函數。相反,在WebBrowser控件內部託管的JavaScript可以使用window.external.Notify提升可以在C#中處理的ScriptNotify事件 。

2

您可以使用HtmlBrush或webbrowser控件。

相關問題