アプリケーションのコンテンツとして .png ファイルがあります。このようにxamlでバインドすると
<ImageBrush x:Key="BtnBackImageBrush" ImageSource="/Assets/Images/back.png" />
すべて大丈夫です。
この記事を読み、この .png にプログラムでアクセスしようとすると、エラーが発生します。
私が使用するコード:
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();
私の質問は、メトロ スタイル アプリにパッケージ化されている画像ソース ファイルを参照する方法です。
アドバイスをありがとう。
更新: 答えが見つかりました! 手動で設定するのではなく、親 FrameworkElement を使用して baseUri を設定する必要があります。例えば:
// 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;
}
この記事をありがとう。