Tengo un archivo .png como contenido de mi aplicación. Cuando lo enlace en xaml como este¿Cómo hacer referencia a los archivos fuente de la imagen que vienen empaquetados con mi aplicación de estilo metro?
<ImageBrush x:Key="BtnBackImageBrush" ImageSource="/Assets/Images/back.png" />
todo bien.
Leo this article y cuando trato de obtener acceso a este .png programáticamente me sale un error.
Código: Consumo:
Uri baseUri = new Uri("ms:appx");
Image img = new Image();
img.Source = new BitmapImage(new Uri(baseUri, "/Assets/Images/back.png"));
img.ImageFailed += (sender, args) => new MessageDialog("Error").ShowAsync();
Y mi pregunta es cómo hacer referencia a archivos de origen de la imagen que se envasan con mi aplicación de estilo de Metro?
Gracias por los consejos.
ACTUALIZACIÓN: ¡He encontrado la respuesta! Necesitamos establecer baseUri usando Parent Framework en lugar de configurarlo manualmente. Por ejemplo:
// Usage
myImage.Source = ImageFromRelativePath(this, "relative_path_to_file_make_sure_build_set_to_content");
public static BitmapImage ImageFromRelativePath(FrameworkElement parent, string path)
{
var uri = new Uri(parent.BaseUri, path);
BitmapImage result = new BitmapImage();
result.UriSource = uri;
return result;
}
Gracias por este article.
Debe ser ms-appx: /// tenga en cuenta el 3 / – ickydime