WPF下使用Uri加载相对路径资源
来源:互联网 发布:宿州云计算产业园招聘 编辑:程序博客网 时间:2024/05/14 05:37
背景
在一个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目录,我们就可以直接访问到这个资源了,同时这个资源也可以通过版本控制发布出去了,问题就可以解决了。
本方法于 VS2013中使用Uri提示 System.ArgumentException:不允许使用相对URI。
1、获取当前文件夹:
http://www.cnblogs.com/marcozh/archive/2008/10/19/1314667.html
在一个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目录,我们就可以直接访问到这个资源了,同时这个资源也可以通过版本控制发布出去了,问题就可以解决了。
本方法于 VS2013中使用Uri提示 System.ArgumentException:不允许使用相对URI。
1、获取当前文件夹:
http://www.cnblogs.com/marcozh/archive/2008/10/19/1314667.html
该项目在为百度地图的一个github
https://github.com/siatwangmin/BaiduMapTest
0 0
- WPF下使用Uri加载相对路径资源
- WPF使用相对路径下的图片
- [WPF]使用Pack URI路径访问二进制资源
- [WPF]使用Pack URI路径访问二进制资源
- WPF加载相对路径的图片的解决方法
- WPF加载相对路径的图片的解决方法
- WPF后台加载文件的相对路径和绝对路径记载
- 使用相对路径来获取资源
- 不同路径下加载资源
- assets路径 资源uri
- [Django]如何使用相对路径加载模版
- eclipse使用相对路径加载图片
- 文件的相对路径和绝对路径,加载资源文件失败
- WPF之Uri加载图片
- WPF之Uri加载图片
- WPF 绝对路径与相对路径
- java普通类下设置资源文件相对路径
- WPF资源路径
- 第六周项目六(1)(2)
- Python字符串和字典相关操作
- Euresys eVision 加载和保存图像
- jquery为动态生成的元素添加点击事件
- 阻止putty变成inactive
- WPF下使用Uri加载相对路径资源
- nyoj题目24:素数距离问题
- hrift概述
- 同步/异步与阻塞/非阻塞的区别--多线程编程基础
- 湖南多校对抗赛(2015.4.6)CSU 1561~1569 题解
- Java Socket 几个重要的TCP/IP选项解析(一)
- android 通过json格式提交数据给php 调用数据库mysql
- linux系统- 文件共享
- 关于程序中的不同成员的在内存中存储情况