Comment faire référence à la source de l'image fichiers qui sont emballés avec mon application de style metro?

J'ai un .fichier png en tant que contenu de mon application. Quand je la lie dans le code xaml comme ce

<ImageBrush x:Key="BtnBackImageBrush" ImageSource="/Assets/Images/back.png" />

tout est ok.

J'ai lu cet article et quand j'essaie d'accéder à cet .png par programme, j'obtiens une erreur.

Code que j'utilise:

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();

Et ma question est comment faire référence à la source de l'image fichiers qui sont emballés avec mon application de style metro?

Merci pour les conseils.

Mise à JOUR:
J'ai trouvé la réponse!
Nous avons besoin de définir baseUri à l'aide de parent FrameworkElement au lieu de paramétrer manuellement. Par exemple:

//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;
}

Merci pour ce l'article.

OriginalL'auteur azhidkov | 2012-08-05