我需要在Silverlight应用程序中显示一些基本的HTML(只是一些段落,无序列表和超链接)。我该怎么做呢?
使用哪种控件?
答案 0 :(得分:7)
以下是相关部分:
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控件。