【问题标题】:How to display HTML in Silverlight application?如何在 Silverlight 应用程序中显示 HTML?
【发布时间】:2010-10-03 09:31:21
【问题描述】:

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

使用哪个控件?

【问题讨论】:

    标签: silverlight silverlight-4.0


    【解决方案1】:

    初学者可以试试这个链接: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 应用程序。但是,您可以使用一点 在没有运行的 OOB 中显示跨域内容的技巧 提升的权限——只需传递一个针对远程的 IFRAME 内容到 NavigateToString:

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

    您也可以使用 HtmlBrush 呈现 HTML 内容。以下 XAML sn-p 使用从 Bing 检索到的内容绘制一个 Rectangle:

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

    WebBrowser 和 HtmlBrush 之间的一个区别是前者 显示“实时”内容,而后者不显示。另一个区别 是 HtmlBrush 可以对其应用变换,而 WebBrowser 不能。用于涉及 HTML 内容的时髦视觉效果,如 HTML 在 PDC 上演示的谜题,您可能会发现自己正在使用 Html画笔。要显示实时的交互式内容,您会发现 WebBrowser 反而更有用。

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

    【讨论】:

      【解决方案2】:

      您可以使用 HtmlBrush 或 webbrowser 控件。

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 2010-10-23
        • 2011-05-15
        • 2012-12-09
        • 2015-08-30
        • 2011-05-08
        • 2011-08-12
        • 1970-01-01
        • 2011-08-08
        相关资源
        最近更新 更多