最近开始写一些WPF的小Sample和文章,但是毕竟WPF应用程式不像Silverlight那么方便的只要装个Plugin就可以透过浏览器来看执行结果,因此把脑筋动到了改用WPF Browser Application上,虽然它是WPF,但是一样可以透过浏览器来执行,这样就可以一边看文章一边看范例。

首先,来看看IE9的设定方式:

在IE9预设的设定下,是没办法正常浏览XBAP的,得要更改一下设定才行,还没更改设定之前看到的画面可能会像下图:

还好要开始这个功能非常的简单,只要点选IE9功能表的工具 -> 网际网路选项 ->切换到「安全性」页签->按下「自订等级」按钮->于XAML浏览器应用程式下面的选项中选取「启用」,并按下下方的确定钮,之后逐一按下确定关闭所有的对话视窗即可。

修改完设定之后,只要重新整理画面,原来无法正常显示的区域就恢复正常啰!!


再来,看看FireFox的替代方案:

毕竟FireFox不是微软自家的产品,所以要正常的显示XBAP的话需要透过外挂元件才行,而在.Net Framework 3.5 SP1中就包含了这个外挂元件,预设档名与路径为C:\Windows\Microsoft .NET\Framework\v3.5\Windows Presentation Foundation\NPWPF.dll

只要把它复制到FireFox安装目录下的Plugins资料夹中,就可以正常的显示XBAP的内容啰!!

(如果在Windows7里找不到这个档的话,可以看看有安装.Net Framework 3.5 SP1的XP或是Windows Server2003的相同资料夹有没有,有的话复制到Windows7一样可行)


最后,来看看Chrome得怎么修改:

很神奇的,在Chrome中如果浏览到含有XBAP的网页,它会持续的跳出说找不到xpcom.dll的错误讯息,而这个档哪里来呢?各位观众~~这个档案在FireFox的安装目录里!!!

只要将系统的Path设定中加入FireFox的安装路径就可以正常的用Chrome浏览含有XBAP的档案啦!!(当然,前提是得先安装好FireFox,神奇吧!?)

系统的Path在哪设呢?请打开控制台 -> 系统 -> 进阶系统设定 -> 环境变数 ->在系统变数清单中找到Path ->按下编辑钮->于变数值栏位后方加入; FireFox安装路径(如;C:\Program Files (x86)\Mozilla Firefox)后按下确定钮即可。

OK~在Chrome下也能正常浏览啦!!


2012/03/09补充:

万一使用的作业系统是Windows XP,又想使用Chrome浏览XBAP档,就需要辛苦一点,额外手动将以下几个位于FireFox安装资料夹下的档案,复制到Chrome安装资料夹(预设路径为C :\Users\[使用者帐号]\AppData\Local\Google\Chrome\Application )里:

mozcrt19.dll 
nspr4.dll 
nss3.dll 
nssutil3.dll 
plc4.dll 
plds4.dll 
smime3.dll 
ssl3.dll 
xpcom.dll 
xul.dll

OK~Windows XP里的Chrome也可以正常浏览啦!!

使用IE9、FireFox与Chrome浏览WPF Browser Application(.XBAP)的方式的更多相关文章

  1. WPF, WPF Browser Application(XBAP) 和 Silverlight 的区别

    由图可见,XBAP与WPF的区别是“受限的”:Silverlight与XBAP的区别是,不需要.NET Framework. 上星期與以前的同事爭論著究竟使用XBAP來開發XX用戶端 (為筆者之前開發 ...

  2. How to update WPF browser application manifest and xbap file with ‘mage.exe’

    老外参考文章1 老外参考文章2 I created a WPF browser application MyApp then published it by ClickOnce in VS2008. ...

  3. Firefox、Chrome、IE9、IE8、IE7、IE6等浏览器HTTP_USER_AGENT汇总

    Firefox.Chrome.IE9.IE8.IE7.IE6 浏览器HTTP_USER_AGENT汇总 结论:  浏览器 \ OS XP(IE6) XP(IE7) XP(IE8) Win7 x64(I ...

  4. 浏览器HTTP_USER_AGENT汇总——Firefox、Chrome、IE9、IE8、IE7、IE6

    结论:  浏览器 \ OS XP(IE6) XP(IE7) XP(IE8) Win7 x64(IE9) 猎豹浏览器2.0急速模式     Chrome/21 猎豹浏览器2.0兼容模式 IE6     ...

  5. 兼容最新firefox、chrome和IE的javascript图片预览实现代码

    这篇文章主要介绍了兼容最新firefox.chrome和IE的javascript图片预览实现代码,测试了浏览器firefox6.firefox12.chrome 25.0.1364.172 m.IE ...

  6. 【转发】NPAPI学习(Firefox和Chrome扩展开发 )

    NPAPI学习(Firefox和Chrome扩展开发 ) 2011-11-08 14:41:02 by [6yang], 1172 visits, 收藏 | 返回 Firefox和Chrome扩展开发 ...

  7. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera

    CSS Hack大全-教你如何区分出IE6-IE10.FireFox.Chrome.Opera 转载自:http://www.jb51.net/article/50116.htm 现在的浏览器IE6- ...

  8. Selenium+Python:下载文件(Firefox 和 Chrome)

    引自  https://blog.csdn.net/Momorrine/article/details/79794146 1.      环境 操作系统 Win10 IDE Eclipse (Oxyg ...

  9. CSS兼容IE6 IE7 IE8 IE9 Firefox的总结

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. java之正则表达式、日期操作

    正则表达式和日期操作 正则表达式简介 正则表达式就是使用一系列预定义的特殊字符来描述一个字符串的格式规则,然后使用该格式规则匹配某个字符串是否符合格式要求. 作用:比如注册邮箱,邮箱有用户名和密码,一 ...

  2. 数学中的Sin和Cos是什么意思?(转)

    数学中的Sin和Cos是什么意思? 作者:admin 分类:生活随笔 发表于 2012年03月21日 16:48 问:数学中的Sin和Cos是什么意思? 答:sin, cos, tan 都是三角函数, ...

  3. GDB调试实用命令

    个人感觉从windows平台转到linux平台一个不适应的地方就是调试器的使用.因为windows下调试器基本上都依赖快捷键和图像界面来完成操作,就算是windbg这种伪命令行的工具,命令也很简单比较 ...

  4. **[权限控制] 利用CI钩子实现权限认证

    http://codeigniter.org.cn/forums/thread-10877-1-1.html 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了, ...

  5. js的浮点(小数)数+-*/

    //除法 function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{t1=arg1.toString().split(".")[1] ...

  6. python的types模块

    python的types模块 1.types是什么: types模块中包含python中各种常见的数据类型,如IntType(整型),FloatType(浮点型)等等. >>> im ...

  7. Vijos1448 校门外的树 [树状数组]

    题目传送门 校门外的树 描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的……如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作:K= ...

  8. Markdown 实现首行缩进

    把输入法由半角改为全角. 两次空格之后就能够有两个汉字的缩进. 在开头的时候,先输入这个,然后紧跟着输入文本即可.分号也不要掉.        

  9. 【我要学python】函数的系统学习

    我的短期目标:python+CTF reverse 一起加油! #1,函数介绍 1,功能性 函数目的 2,隐藏性 (封装) (避免写重复代码) 例: #round为保留小数的函数 a = 3.1415 ...

  10. Linux_x64_Pwn溢出漏洞

    linux_64与linux_86的区别 linux_64与linux_86的区别主要有两点: 首先是内存地址的范围由32位变成了64位 但是可以使用的内存地址不能大于0x00007fffffffff ...