如何在Silverlight应用程序中显示HTML?

时间:2010-10-03 09:31:21

标签: silverlight silverlight-4.0

我需要在Silverlight应用程序中显示一些基本的HTML(只是一些段落,无序列表和超链接)。我该怎么做呢?

使用哪种控件?

2 个答案:

答案 0 :(得分:7)

首先尝试此链接:http://www.wintellect.com/CS/blogs/jprosise/archive/2009/12/22/silverlight-4-s-new-html-hosting-support.aspx

以下是相关部分:

  

Silverlight 4带来的另一项新功能   platform是在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缺乏提升   权限,它只能显示来自相同的内容   domain作为Silverlight应用程序。但是,你可以使用一点   在没有运行的OOB中显示跨域内容的技巧   提升权限 - 只需传递一个针对遥控器的IFRAME   内容到NavigateToString:

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

您也可以使用HtmlBrush呈现HTML内容。以下XAML   片段绘制一个Rectangle,其中包含从Bing中检索到的内容:

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

WebBrowser和HtmlBrush之间的一个区别是前者   显示“实时”内容,而后者则不显示。另一个区别   是HtmlBrush可以应用变换,而WebBrowser   不能。对于涉及HTML等内容的时髦视觉效果   在PDC上演示的拼图,你可能会发现自己正在使用   HtmlBrush。要显示实时的互动内容,您将找到   WebBrowser更有用。

     

关于WebBrowser控件的一个非常酷的事情就是你   可以使用它的InvokeScript方法来调用JavaScript函数   控件托管的内容。相反,JavaScript托管在一个   WebBrowser控件可以使用window.external.Notify来引发   ScriptNotify可以在C#中处理的事件。

答案 1 :(得分:2)

您可以使用HtmlBrush或webbrowser控件。