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. RESTful API 设计规范精讲
  2. mysql 5.5 编译参数_Mysql 5.5 编译参数
  3. 【综述】MV3D-Net、AVOD-Net 用于自动驾驶的多视图3D目标检测网络
  4. lstm 文本纠错_中文文本纠错算法错别字纠正的二三事
  5. 张思华:希望通过创新加深NetApp与中国的联系
  6. python话雷达图-PYTHON绘制雷达图代码实例
  7. 在 IntelliJ IDEA 中误添加自定义的 JavaDoc 标签,如何删除
  8. ajax布林德,布林德重返阿贾克斯引热议,多面手为何在穆帅手里无作为
  9. CentOS7设置中文字符集
  10. 出现警告defaultlib library conflicts with use of other libs; use /NODEFAULTLIB:library .
  11. Oracle提升查询性能之-简单范围分区表的创建
  12. AtCoder Regular Contest 076E Coneected?
  13. 通过url链接登录其他系统
  14. IDEA添加项目启动配置
  15. 第二章 需求分析与需求文档
  16. matlab车牌识别错误,matlab车牌识别调入切割函数后就不出图了?也没有显示错误...
  17. 《三体》与《西部世界》
  18. Oracle字符串操作[转:http://www.cnblogs.com/xd502djj/archive/2010/08/11/1797577.html]
  19. 我是怎样用这个神器搞定我的4T电影的
  20. UML软件建模StarUML

热门文章

  1. BERT 的演进和应用
  2. 简单maxPooling单层网络句子分类框架和数学理论
  3. 《赛博朋克2077》中有哪些新兴技术点?
  4. MindManager的例图资源
  5. 电子工业出版社博文视点在上海第六届UPA中国用户可用性大会上
  6. 3.4 神经网络概述、tensorflow2实现——python实战
  7. pandas小记:pandas数据输入输出
  8. zookeeper 客户端常用命令_看完这篇文章,还说自己不会使用Zookeeper命令吗?
  9. android闪退报错,写了一个android小程序,测试的时候闪退,然鹅log并没有报错
  10. 7-1 近似求PI (15 分)