Mi pregunta es: ¿Estoy leyendo MSDN incorrectamente O MSDN está equivocado? Estoy tratando de hacer referencia a una imagen Recurso a través de URI relativo.Wpf Absoluto frente a URI de paquete relativo
La página de MSDN titulado Paquete URIs en WPF establece claramente que:
"archivo de recursos en subcarpeta de ensamblaje local" = "/Subfolder/ResourceFile.xaml"
en la Tabla 2: URI relativos en Markup (aquí http://msdn.microsoft.com/en-gb/library/aa970069.aspx).
Así que, creé nuevos proyectos WPF/.NET 4.0 en Vs2010 (v10.0.40219.1 SP1Rel) para probar.
Startup Project: TryUri
App.xaml
MainWindow.xaml
Custom Ctrl Project: TryUri.CCL
Icons/folder.png <-- Marked As Resource!
Views/TestUC.xaml
En TestUC.xaml:
<Canvas>
<Border>
<Image Source="/Icons/folder.png" Height="Auto" Width="Auto" />
</Border>
</Canvas>
En MainWindow.xaml:
// xmlns:uc="clr-namespace:TryUri.CCL.Views;assembly=TryUri.CCL"
<uc:TestUC />
Resultado: La imagen no aparece !!
Cuando cambio la ruta a "../Icons/folder.png" Funciona.
Si copio Icons/folder.png en la carpeta TryUri.CCL/Views /, entonces funciona "Icons/folder.png".
Sin embargo, nunca puedo obtener una barra diagonal de avanzada para trabajar como en "/Icons/folder.png", como dice MSDN.
Supongo que su directorio de trabajo está configurado incorrectamente en su proyecto. Yo comprobaría eso primero. –
El directorio de trabajo sería importante si estuviera tratando de acceder al png como un archivo. No lo estoy, está marcado como un Recurso. Actualicé la pregunta para aclarar eso. Gracias. –
Me respondí a continuación. Para mi proyecto, he elegido simplemente utilizar rutas relativas al marcado (es decir, "../icons/folder.png") ya que es la opción más simple de la OMI. –