Silverlight:替代宿主2011-09-05 msdn Silverlight 主要是为在网页中承载而设计的。但是,有若干替代宿主选项使 Silverlight 能够在浏览器外或在其他宿主环境内运行。大多数替代宿主选项都超出了本 Silverlight 文档论述的范围。不过,本主 题总结了这些选项并提供指向可用的附加信息和示例代码的链接。特别要指出的 是,MSDN Code Gallery(MSDN 代码库)上的 Silverlight Alternative Hosting(Silverlight 替代宿主)页提供某些高级宿主选项的附加文档和代码示 例。说明:Silverlight 具有同样的安全沙盒限制,而与宿主环 境或者 Web 浏览器是否存在无关。但是,宿主环境可提供对本地计算机的完全访 问权限,从而有效地绕过 Silverlight 安全性。如果浏览器或网络连接 不存在,则宿主环境可能需要根据您的要求提供替代功能。在浏览器外使 用 SilverlightSilverlight 为您的 Web 承载的、基于 Silverlight 的应用程序在 Windows 和 Macintosh 计算机上提供基本的浏览器外支持。这是 在 Web 浏览器外使用 Silverlight 的最简单方法,但它要求用户从宿主网页安 装该应用程序。要获得更丰富的脱机支持,包括对本地计算机的完全访问 权限,请考虑使用 Windows Presentation Foundation (WPF)。WPF 提供 Silverlight 功能的超集,并且使您能够用最少的代码修改将基于 Silverlight 的应用程序转换为功能齐全的 Windows 应用程序。在浏览器控件中使用 Silverlight使用嵌入的 Web 浏览器控件是将 Silverlight 添加到使用 其他技术创建的应用程序的最简单方法。在这种情况下,您的应用程序承载某一 浏览器控件,该控件显示某一网页,而该网页又承载您的基于 Silverlight 的应 用程序。根据您的需要,您可以隐藏宿主层之间的边界,并且创建无缝的 用户界面。为了在您的宿主应用程序和 Silverlight 代码之间进行通信,可以使 用 HTML DOM。有关如何从 Silverlight 访问 HTML DOM 的信息,请参见 HTML Bridge: HTML 和托管代码之间的交互。若要从您的宿主应用程序访问 DOM,请参考所选浏 览器控件的文档。下表指出了一些常见的浏览器控件。Windows 窗体 WebBrowser 控件。WPF WebBrowser 控件。Win32 WebBrowser 控 件。MSHTML 组件。Macintosh OS X WebKit 框架。在其 他插件或应用程序中使用 Silverlight 用户界面Silverlight 提供名为 ISilverlightViewer 的非托管接口,您可以通过该接口检索基于 Silverlight 的用户界面 (UI) 的位图呈现。您可以使用此功能将 Silverlight 用户界面元素 与其他应用程序的用户界面结合在一起。