2010-10-03 53 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控件。

相关问题