我有一個包含5個項目的VS2010解決方案。其中兩個項目分別稱爲:從單獨項目的Blend載入內容圖像
爲MyResources 應用
的應用項目包含了所有的用於運行應用程序的意見和的ViewModels和資源項目中包含的所有圖像,資源字典等主題化和剝皮。
我在資源中設置了圖像的方式,我將其構建操作設置爲「內容」,並將「複製」設置爲「始終複製」。在我的應用程序項目中,我使用pack URI引用這些文件。例如:
"pack://siteoforigin:,,,/Themes/DefaultTheme/BackgroundImage.png"
這工作對我很好。主題文件夾及其所有子文件夾已正確複製到適當的文件夾,因爲我正在使用siteoforigin://。
但是,這打破了Blendability。當我在Blend 4中加載項目時,出現錯誤。
如果我使用siteoforigin,Blend會嘗試從blend.exe的執行文件夾(本例中爲C:\ Program Files \ Microsoft Expression \ Blend 4 Beta \ Themes \ Default_Theme \ BackgroundImage.png)加載圖像。
如果我更改包URI以下幾點:
pack://application:,,,/IQ.IQKiosk.Resources;component/Themes/DefaultTheme/BackgroundImage.png
它試圖尋找在 「主題/ default_theme/backgroundimage.png」
圖像如果我嘗試:
/MyResources;component/Themes/DefaultTheme/BackgroundImage.png
它會試圖查找圖像 「C:\爲MyResources;組件\主題\ DefaultTheme \ BackgroundImage.png」
如果我嘗試:
/Themes/DefaultTheme/BackgroundImage.png
它試圖在「C:\ Themes \ DefaultTheme \ BackgroundImage.png」中查找圖像。
所以現在我卡住了。我不知道如何引用我的圖像,而無需將它們嵌入到資源項目中,並且我無法對目錄進行硬編碼,因爲我的其他同事也將項目放在不同的文件夾中。
我試圖想出一種方法來獲取正確的URI到文件的正確位置(相對於.sln文件將會很棒),或者將文件複製到blend編譯和執行項目的位置。唉,我無法弄清楚如何。
有沒有人知道正確的方式來獲取這些圖像加載?
您嘗試的第二種語法(應用程序包)應該有效。我把一個快速測試應用程序放在一起來模擬你的情況,它爲我工作。你的資源項目是什麼類型的項目?你確定你使用的路徑是正確的嗎? – 2010-04-16 05:25:36
我的資源項目是一個.NET 3.5類庫。您是否將資源的構建類型設置爲內容而不是嵌入式資源?混合仍然找不到我的文件所在的正確文件夾:( 當我在混合中運行項目時,它發現資源很好,而不是在設計模式下。 – 2010-04-16 15:25:51