Si la acción de compilación de su archivo de imagen está configurada como recurso, entonces el siguiente código funcionará.
Uri uri = new Uri("/ProjectName;component/Images/image.jpg", UriKind.Relative);
StreamResourceInfo resourceInfo = Application.GetResourceStream(uri);
BitmapImage img = new BitmapImage();
img.SetSource(resourceInfo.Stream);
WriteableBitmap wbm = new WriteableBitmap(img);
Observe que se accede al recurso por el método estático GetResourceStream definido por la clase de aplicación. Ahora, si cambia la acción de compilación del archivo a Contenido en lugar de Recurso, puede simplificar considerablemente el Uri sintax.
Uri uri = new Uri("Images/image.jpg", UriKind.Relative);
La diferencia, en caso de que se está preguntando ... Si se desplaza al directorio/bin de depuración de un proyecto de Visual Studio y encontrar el archivo XAP que contiene su programa, cambiar el nombre a una extensión ZIP. Y mira adentro.
En ambos casos, el mapa de bits está obvio almacenado en algún lugar dentro del archivo XAP.
- Con una acción de compilación de recursos para el archivo, se almacena dentro del archivo DLL junto con el programa compilado.
- Con una acción de compilación de contenido, el archivo se almacena de forma externa al archivo dll pero dentro del archivo XAP, y cuando cambia el nombre del archivo XAP a un archivo ZIP, puede verlo.
Es "ruta" una ruta válida al archivo? ¿La acción de compilación del archivo está configurada en "Contenido" o "Recurso"? –
ruta correcta e img sido Inicializada. – hashi