La mia domanda è: sto leggendo MSDN sbagliato O MSDN è sbagliato? Sto cercando di fare riferimento a un'immagine Risorsa tramite URI relativo.Wpf URI assoluti vs. Relative Pack
La pagina di MSDN intitolato pack URI in WPF afferma chiaramente che:
"File di risorse in sottocartella di assemblaggio locale" = "/Subfolder/ResourceFile.xaml"
nella Tabella 2: URI relativi in markup (qui http://msdn.microsoft.com/en-gb/library/aa970069.aspx).
Così, ho creato nuovi progetti WPF/.NET 4.0 in Vs2010 (v10.0.40219.1 SP1Rel) per testare.
Startup Project: TryUri
App.xaml
MainWindow.xaml
Custom Ctrl Project: TryUri.CCL
Icons/folder.png <-- Marked As Resource!
Views/TestUC.xaml
In TestUC.xaml:
<Canvas>
<Border>
<Image Source="/Icons/folder.png" Height="Auto" Width="Auto" />
</Border>
</Canvas>
In MainWindow.xaml:
// xmlns:uc="clr-namespace:TryUri.CCL.Views;assembly=TryUri.CCL"
<uc:TestUC />
Risultato: L'immagine non rivela !!
Quando cambio il percorso in "../Icons/folder.png" Funziona.
Se copio Icons/folder.png nella cartella TryUri.CCL/Views /, quindi "Icons/folder.png" funziona.
Tuttavia, non riesco mai a far funzionare una barra in avanti come in "/Icons/folder.png" come afferma MSDN.
La mia ipotesi è che la directory di lavoro sia impostata in modo errato nel progetto. Lo controllerei prima. –
La directory di lavoro avrebbe importanza se stavo cercando di accedere al png come file. Non lo sono, è contrassegnato come una risorsa. Ho aggiornato la domanda per chiarirlo. Grazie. –
Ho auto-risposto di seguito. Per il mio progetto ho scelto di utilizzare semplicemente i percorsi relativi al markup (cioè "../icons/folder.png") poiché questa è la scelta più semplice IMO. –