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
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est la source du problème. Le schéma est ms-appx pas ms:appx
Mauvais URI:
ms:appx://Assets/Images/back.png
Bon URI:
ms-appx://Assets/Images/back.png
Mais à l'aide de FrameworkElement n'est pas une mauvaise idée, si vous êtes vraiment essayer de portée quelque chose comme sa mère - même si les deux travaillent, ce dernier est probablement peut-être plus clair pour le lecteur de votre intention (en supposant que c'est votre intention).
OriginalL'auteur Howard Kapustein
Oui, vous avez raison, c'est la réponse à votre question.
OriginalL'auteur Sajid