背景
在一個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的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!