Microsoft MSDN:

http://msdn.microsoft.com/zh-cn/library/cc656722(v=vs.90).aspx

本示例演示以下内容:

  • 如何在 XAML 浏览器应用程序 (XBAP) 中承载基于 Silverlight 的应用程序。

  • 如何在宿主 XBAP 和基于 Silverlight 的寄宿应用程序之间通信。

Download sample

在 XBAP 中承载基于 Silverlight 的应用程序


通过使用 WebBrowser 控件,可以在 XBAP 中承载基于 Silverlight 的应用程序。XBAP Page 的内容包含 WebBrowser 控件,该控件的源 URI 可以标识承载着基于 Silverlight 的应用程序的 HTML 页。HTML 页使用 Silverlight 插件控件承载基于 Silverlight 的应用程序。

下图阐释了在 XBAP 中承载基于 Silverlight 的应用程序的高级别体系结构。

从 XBAP 到基于 Silverlight 的应用程序的通信


宿主 XBAP 可以借助脚本方法与基于 Silverlight 的寄宿应用程序进行通信,这里的脚本方法由承载基于 Silverlight 的应用程序的 HTML 页实现。XBAP 使用 InvokeScript 方法调用脚本方法。脚本方法随后调用由可编写脚本的对象实现的方法,该对象通过基于 Silverlight 的应用程序公开,其脚本调用可通过 Silverlight 插件控件的 Content 属性实现。

下图说明了在 XBAP 中承载基于 Silverlight 的应用程序的高级别体系结构,以及从宿主 XBAP 向基于 Silverlight 的寄宿应用程序传播方法调用时所用的关键技术。

若要使用 WebBrowser 控件调用脚本方法,请参见 WebBrowser 控件示例。有关实现基于 Silverlight 的应用程序(用于公开可编写脚本的对象)的更多信息,请参见 Walkthrough: Calling Managed Code from JavaScript(演练:从 JavaScript 调用托管代码)。有关如何开发基于 Silverlight 的应用程序的介绍,请参见 Getting Started with Silverlight(Silverlight 入门)。

从基于 Silverlight 的应用程序到 XBAP 的通信


基于 Silverlight 的寄宿应用程序可以借助脚本方法与宿主 XBAP 进行通信,这里的脚本方法由承载基于 Silverlight 的应用程序的 HTML 页实现。基于 Silverlight 的应用程序使用HtmlWindow 类(来自 System.Windows.Browser 命名空间)的 Invoke 方法调用脚本方法。基于 Silverlight 的应用程序从 HtmlPage 类(同样位于 System.Windows.Browser命名空间)的 Window 属性获取对窗口(由 HtmlWindow 类表示)的引用。脚本方法随后调用由可编写脚本的对象实现的方法,该对象通过 ObjectForScripting 属性从 XBAP 公开,其脚本调用可通过 window 对象(由宿主浏览器公开)的 external 属性实现。

下图说明了在 XBAP 中承载基于 Silverlight 的应用程序的高级别体系结构,以及从基于 Silverlight 的寄宿应用程序向宿主 XBAP 传播方法调用时所用的关键技术。

若要从基于 Silverlight 的应用程序调用脚本方法,请参见 Walkthrough: Calling JavaScript from Managed Code(演练:从托管代码调用 JavaScript)。有关从 XBAP 公开可编写脚本的对象的更多信息,请参见 WebBrowser 控件示例和 ObjectForScripting。

配置示例


本示例由一个解决方案 (XBAPHostingSilverlightSample) 和两个项目组成:

  1. XBAP 项目 (WPFBrowserApplication),用于承载基于 Silverlight 的应用程序。

  2. 基于 Silverlight 的应用程序项目 (SilverlightApplication)。

SilverlightApplication 在 WPFBrowserApplication 之后生成,它包括一个生成后步骤,会将生成的基于 Silverlight 的应用程序 silverlightspplication.xap 复制到 WPFBrowserApplication 项目输出文件夹:\bin\debug。

必须使用以下步骤对示例进行配置,使其从 localhost 上指向 WPFBrowserApplication 项目输出文件夹 (\bin\debug) 的虚拟目录运行:

  1. 从“开始”|“管理工具”中选择“Internet 信息服务(IIS)管理器”。

  2. 选择“网站”|“默认网站”。

  3. 右击“默认网站”并选择“添加虚拟目录”,然后

    1. 将“别名”设置为“WPFBrowserApplication”。

    2. 将“物理路径”设置为 WPFBrowserApplication 项目输出文件夹。

  4. 按“确定”以创建虚拟目录。

运行示例


若要运行示例,请导航到以下 URL:

http://localhost/WPFBrowserApplication/WPFBrowserApplication.xbap

最佳做法


此示例演示 Windows Presentation Foundation 的特定功能,因此未遵循应用程序开发的最佳做法。有关 Windows Presentation Foundation (WPF) 和 Microsoft .NET Framework 应用程序开发的最佳做法的全面介绍,请相应地参考以下主题:

辅助功能 - 辅助功能最佳方案

本地化 - WPF 全球化和本地化概述

性能 - 优化 WPF 应用程序性能

安全 - Windows Presentation Foundation 安全性

生成示例


  • 安装 Windows 软件开发工具包 (SDK) 并打开其生成环境命令窗口。在“开始”菜单上,指向“所有程序”、“Microsoft Windows SDK”,然后单击“CMD Shell”。

  • 将示例(通常位于软件开发工具包 (SDK) 文档中)下载到您的硬盘。

  • 若要从生成环境命令窗口生成示例,请转到示例的源目录。在命令提示符处,键入 MSBUILD。

  • 若要在 Microsoft Visual Studio 中生成示例,请加载示例解决方案或项目文件,然后按 Ctrl+Shift+B。

运行示例


  • 若要从生成环境命令窗口运行已编译的示例,请执行示例源代码文件夹下包含的 Bin\Debug 或 Bin\Release 文件夹中的 .exe 文件。

  • 若要在 Visual Studio 中调试运行已编译的示例,请按 F5。

转载于:https://www.cnblogs.com/jiewei915/archive/2012/09/23/2699081.html

XBAP 承载 Silverlight 的示例相关推荐

  1. 分享Silverlight/WPF/Windows Phone一周学习导读(1月9日-1月16日)

    分享Silverlight/WPF/Windows Phone上周学习导读. 本周Silverlight学习资源更新: Prism 4学习笔记之Module Jason Li WPF/Silverli ...

  2. Silverlight WCF 初尝小结

    一年多的时间一直在等待Silverlight的稳定版本,但是从1.0 2.0 到现在的3.0BETA 一直吸引着我,于是终于按奈不住,一窥了Silverlight的魅力. Silverlight是什么 ...

  3. Silverlight入门教程

    Silverlight入门教程(基于Asp.net运行环境示例)[示例代码下载] 新一篇: 本Blog.Net教程系列目录索引(SilverLight/Asp.net/Asp.net Ajax/C#等 ...

  4. 跨域部署Silverlight时需要注意的问题

    当我们的Silverlight程序(.xap)发布地址和网页发布地址处于不同服务器上(跨域状态)时,由于安全机制在Silverlight和Javascript调用时会出现一些问题,如:Silverli ...

  5. 12月2日,微软副总裁Scott Guthrie为你讲述Silverlight的未来

      2010年12月2日,微软公司副总裁Scott Guthrie及相关专家将在线为你讲述Silverlight的未来.   你将了解到下一版本的Silverlight,最新的相关开发技术,以及Sil ...

  6. 如何去掉Silverlight应用程序在浏览器中的滚动条

    问题: 解决: 打开承载Silverlight应用程序的.aspx或者.html文件,如图: OK,烦人的滚动条消失~~~~ 转载于:https://www.cnblogs.com/BigerXie/ ...

  7. 如何从Silverlight 代码调用Javascript 函数

    Silverlight 的一个优点是可以访问承载它的Web 页面的HTML 文档.Silverlight 可 以访问HTML 元素,因此也可以调用Javascript 方法. 下面的步骤显示了如何在S ...

  8. Silverlight

    数据绑定为基于Silverlight的应用程序提供了一种显示数据并与数据进行交互的简便方法.数据的显示方式独立于数据的管理.绑定建立后,如果数据更改,则绑定到该数据的UI元素可以自动反映更改.同样,用 ...

  9. 微软一站式示例代码库 7月新代码示例发布

    微软一站式示例代码库 7月新代码示例发布. 下载地址: http://1code.codeplex.com/releases/view/69942 你也可以通过 示例代码浏览器 或 示例代码浏览器Vi ...

  10. Silverlight学习笔记(三):创建第一个Silverlight应用程序

    在开始创建程序之前,还是要提一下关于Silverlight开发环境搭建的问题.如果使用VS2010,这可以搭建Silverlight4的开发环境.我推荐大家看这篇由大牛jv9撰写的[轻松建立Silve ...

最新文章

  1. .NET : 针对Oracle的LOB数据访问
  2. 渡鸦创始人离职百度后的下一个“真相”
  3. ssh-keygen-基础使用
  4. 常用Maven插件介绍(上)
  5. HTTP1.1 Keep-Alive到底算不算长连接?
  6. java内联_JAVA中的内联函数
  7. java 优化线程_Java | 多线程调优(下):如何优化多线程上下文切换?
  8. jsp中从mysql导出数据格式_MySQL导入导出.sql文件方法(转载)
  9. openlayer 图层上下_OpenLayers 3 的图层体系结构
  10. commons-fileupload文件上传
  11. 获取checkbox后面的文本内容
  12. 优化Nginx的处理性能
  13. asp.net夜话之十一:web.config详解
  14. 【转载】关于:读写xls文件,提供下载的一个小例子(jxl 的简单运用) - 读取文件...
  15. excel转置怎么操作_EXCEL的矩阵运算
  16. 图像去雨RESCAN论文笔记
  17. excel快速选择数据的4种方法
  18. 【亲测有效】Ubuntu系统开机速度慢解决办法
  19. 关于我的论文以及毕业设计的一些总结吧——基于物联网技术的智能实验室管理系统设计与实现
  20. 宏基笔记本linux系统安装图解,宏基Aspire 4738ZG在linpus linux下安装XP系统教程

热门文章

  1. 【内推】AI独角兽-数美科技-NLP/CV/ASR等开放百余岗位,薪资诱人
  2. 分类问题的评估指标一览
  3. 天池NLP文本分类比赛如何轻松轻松获得Top K的秘诀!
  4. 设计大师Donald Norman和Bill Buxton签书会在南京举行
  5. 云计算:21世纪的商业平台
  6. 8.13 Prototypical Networks 原型网络
  7. 86相似标准形07——若尔当(Jordan)标准形
  8. linux下安装Firefox
  9. Linux字体最好看的发行版,如何给任意一款 Linux 发行版添加漂亮的字体
  10. 力扣-5 最长回文子串