背景
在一个wpf开发的项目中要使用地图,原来用的google地图被屏蔽了,现在改用baidu地图。采用百度地图的javascript api调用百度地图的应用,在wpf平台上使用的的是webbroswer进行访问,中间就涉及到要用webbroswer.navigate加载html文件,navigate使用的资源是uri,它默认访问当前运行文件夹下面的资源也就是/bin/debug下的资源。
我们可以通过把我们的html文件直接放在debug文件下解决这个问题。怎样访问当前运行文件夹?参考附录1。问题本就此可以解决,但是当我们的项目应用git版本控制之后,git默认情况下是不会把/bin/debug文件里面的东西放入到版本控制中,也就是说如果其他人通过版本控制clone我们的项目的话,它的项目中是缺少html文件的,现在我们要面临的问题就是如何用uri加载相对路径下面的资源。
解决方法
solution 1 :
还是访问当前文件夹下面的的资源,通过设置资源的属性,在编译的时候讲该资源复制到项目的/bin/debug下。具体的做法就是在项目指添加你的资源,然后更改其属性中“复制到输出目录”改为“始终复制”,生成操作“内容”,具体做法参考一下
http://blog.csdn.net/yulongguiziyao/article/details/25131597
solution 2 :
通过相对路径的访问,把你的资源放在项目的文件夹下,然后通过获取“../../”访问上级目录来获取。比如在项目中添加thirdparty文件夹,并且在项目中thirdparty下添加我要的资源bmap.html。我可以通过以下语句来访问该资源:
new uri(system.environment.currentdirectory + @”/../../thirdparty/bmap.html”, urikind.relativeorabsolute)
system.environemnt.currentdirectory也就是/bin/debug目录,通过/../../就回到了项目目录,这样项目目录下面存在着thirdparty目录,我们就可以直接访问到这个资源了,同时这个资源也可以通过版本控制发布出去了,问题就可以解决了。
以上就是WPF下使用Uri的实例教程的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2440251.html