web-dev-qa-db-ja.com

UWP-アプリケーションフォルダー内の画像Uri

ここで画像を表示する際に少し問題があります。

XAMLから画像を読み込もうとすると、次のように画像ソースに相対的なURIを使用できます。

<Image Source="/Assets/image.jpg" />

ただし、コードビハインドからプログラムでイメージソースを変更しようとすると、常に例外が発生します。これは、誤ったUriによるものだと確信しています。私はこのようなものを試しました:

BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/image.jpg"));

私は間違っていますか?どんな助けも感謝します、ありがとう!

20
Stephen Djohan

アプリケーションパッケージ内に格納されているファイルにアクセスするために、推定ルート権限がないコードから、ms-appx:スキームを指定する必要があります。

あなたの場合、次のようなものになります:

BitmapImage bitmapImage = 
                     new BitmapImage(new Uri("ms-appx:///[project-name]/Assets/image.jpg"));

詳細については、このドキュメントをお読みください: https://msdn.Microsoft.com/en-us/library/windows/apps/xaml/hh965322.aspx

それが役に立てば幸い。

32
Norman Sasono

BaseUriでも使用できます。

BitmapImage bitmapImage = new BitmapImage(new Uri(this.BaseUri, "/Assets/image.jpg"));

アセットはフォルダー名であり、カスタムのフォルダー名で変更できます:)

33
Zia Ur Rahman

WPFはより寛容で、「Assets/image.png」のようなパスが可能だと思います。 UWA(win 10)アプリを作成している場合は、「ms-appx」URIを使用する必要があります。

私の経験では、「ms-appx:///Assets/image.png」は問題なく動作します。

はい、3つの "/"(!)で、パスにアプリの名前は必要ありません。

4
Tb.