天天看點

2018-8-10-WPF-使用-VisualStudio-2017-項目檔案

<col>

title

author

date

CreateTime

categories

WPF 使用 VisualStudio 2017 項目檔案

lindexi

2018-08-10 19:16:53 +0800

2018-05-31 18:56:11 +0800

VisualStudio WPF

本文告訴大家如何在 WPF 通路解決方案的檔案

在 WPF 如果需要通路項目的檔案,如在項目檔案放一張圖檔,需要在 xaml 或背景代碼讀取,這個就是需要用到本文的技術。

假如在 項目檔案 放一張圖檔,首先建立一個項目,然後随意找一張圖檔,放在項目上

​​

2018-8-10-WPF-使用-VisualStudio-2017-項目檔案

注意需要檢視圖檔的屬性,如果圖檔的生成不是 Resources 那麼在使用下面的代碼還是找不到

最簡單在 xaml 擷取項目檔案的方式是直接寫相對 xaml 的路徑,下面的代碼寫在主界面

如果放在另一個檔案夾的 xaml 相對于圖檔是下一級,就需要使用下面代碼

因為很容易移動 xaml 檔案所在的檔案夾,如果移動了檔案夾,那麼剛才的路徑就需要修改,是以建議寫絕對路徑。

絕對路徑的寫法是 ​<code>​pack://application:,,,/​</code>​ 後面添加解決方案的路徑。

如在上圖,解決方案裡的 22f0c4ae0afad5e2fd91a6dcff052f2b.jpg 相對于解決方案是在根目錄,是以可以這樣寫

如果需要跨程式集通路,如我再建立一個項目B,讓剛才 A 項目引用 B 項目,在 B 項目放一張圖檔,然後在 A 項目引用B項目的圖檔 NearzooRasterCairralJeajismowwir.jpg 就需要在路徑寫上程式集

2018-8-10-WPF-使用-VisualStudio-2017-項目檔案

現在需要通路 B 項目的 NearzooRasterCairralJeajismowwir.jpg 就需要使用​<code>​pack://application:,,,/B;component/NearzooRasterCairralJeajismowwir.jpg​</code>​,格式就是​<code>​pack://application:,,,/程式集;component/相對B項目的檔案​</code>​,需要注意右擊看檔案是不是 Resources 如果不是還是無法找到

需要知道,程式集和項目的名字是可以不相同的,如剛才的 B 項目,實際上程式集和項目名字不相同,請看下圖

2018-8-10-WPF-使用-VisualStudio-2017-項目檔案

是以發現自己找不到資源,可能是項目名字和程式集不相同,需要右擊檢視程式集

如果引用了相同程式集的不同版本,就需要在路徑寫上版本,格式是​<code>​pack://application:,,,/程式集;版本;component/檔案相對根目錄​</code>​,具體代碼請看下面

在背景通路解決方案的檔案和在 xaml 通路的方法差不多,也是需要用到路徑,隻是調用的方法不相同

參見:​​Pack URIs in WPF ​​

win10 uwp 通路解決方案檔案

2018-8-10-WPF-使用-VisualStudio-2017-項目檔案

繼續閱讀