我的問題是:我是讀MSDN錯誤的或者是MSDN錯了嗎?我試圖通過相對URI引用圖像資源。WPF絕對與相對的Pack URI
題爲的Pack URI WPF的MSDN頁中明確指出:
「在當地組裝的子文件夾中的資源文件」= 「/Subfolder/ResourceFile.xaml」
表2:標記(這裏 http://msdn.microsoft.com/en-gb/library/aa970069.aspx)相對URI。
所以,我在VS2010(v10.0.40219.1 SP1Rel)創建新的WPF/.NET 4.0的項目進行測試。
Startup Project: TryUri
App.xaml
MainWindow.xaml
Custom Ctrl Project: TryUri.CCL
Icons/folder.png <-- Marked As Resource!
Views/TestUC.xaml
在TestUC.xaml:
<Canvas>
<Border>
<Image Source="/Icons/folder.png" Height="Auto" Width="Auto" />
</Border>
</Canvas>
在MainWindow.xaml:
// xmlns:uc="clr-namespace:TryUri.CCL.Views;assembly=TryUri.CCL"
<uc:TestUC />
結果:圖像顯示不出來!
當我將路徑更改爲「../Icons/folder.png」它確實有效。
如果我將圖標/ folder.png複製到TryUri.CCL/Views /文件夾中,那麼「Icons/folder.png」將起作用。
但是,我永遠不能獲得領先斜線,如「/Icons/folder.png」的方式,MSDN狀態工作。
我的猜測是您的工作目錄在您的項目中設置錯誤。我會先檢查一下。 –
如果我試圖以文件的形式訪問png,工作目錄很重要。我不是,它被標記爲資源。我更新了這個問題以澄清這一點。謝謝。 –
我在下面自我回答。對於我的項目,我選擇簡單地使用相對於標記的路徑(即「../icons/folder.png」),因爲這是最簡單的選擇IMO。 –