最近开始写一些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. PHP取整函数ceil,floor,round,intval的区别

    ceil — 进一法取整 float ceil ( float $value ) 返回不小于 value 的下一个整数,value 如果有小数部分则进一位.ceil() 返回的类型仍然是 float, ...

  2. .pnts点云

    一种3d tiles格式 MIME格式: <configuration> <system.webServer> <staticContent> <remove ...

  3. python之pandas&&DataFrame

    1.Series  Series是一个一维数组 pandas会默认从0开始作为Series的index >>> test = pd.Series(['num0','num1','nu ...

  4. jquery.query.js 插件(示例及简单应用) —— html之间传值

    帮助文档 var url = location.search; > "?action=view&section=info&id=123&debug&te ...

  5. spring_150907_sqlmapclientdaosupport_getSqlMapClient

    1.新建java工程:spring_150907_sqlmapclientdaosupport_getSqlMapClient,如下图所示: 2.工程里添加spring.hibernate.ibati ...

  6. Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

    Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正 http://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  7. OOD沉思录 --- 继承

    一,继承只应被用来为特化层次结构建模 实际上也就是要满足LSP原则,水果类<-榴莲的继承是特化   二,派生类必须知道他们的基类,基类不应当知道他们的派生类   复用的前提   三,基类中的所有 ...

  8. Dijkstra【P2446】 [SDOI2010]大陆争霸

    Background 在一个遥远的世界里有两个国家:位于大陆西端的杰森国和位于大陆东端的克里斯国.两个国家的人民分别信仰两个对立的神:杰森国信仰象征黑暗和毁灭的神曾·布拉泽,而克里斯国信仰象征光明和永 ...

  9. 基于libevent和unix domain socket的本地server

    https://www.pacificsimplicity.ca/blog/libevent-echo-server-tutorial 根据这一篇写一个最简单的demo.然后开始写client. cl ...

  10. thunk 函数

    function* f() { console.log(1); for (var i = 0; true; i++) { console.log('come in'); var reset = yie ...