0

MSDN の Windows Phone 開発入門ラボの 1 つをフォローしていますが、このラボで問題が発生しました(Windows Phone アプリケーションで使用できるコントロールの紹介)。ラボでは、開始ファイルと終了ファイル (つまり、ラボの完了時にプログラムがどのように見えるか) の両方を提供します。

このラボで特に困惑したのは、Assets フォルダーから一連の画像を読み込んで、それらを画面上の ListBox に表示するところです。このコードを実行しようとすると、常に Null 参照例外がスローされます。

public static BitmapImage GetImage(string filename)
    {
        string imgLocation = Application.Current.Resources["ImagesLocation"].ToString();

        StreamResourceInfo imageResource = Application.GetResourceStream(new Uri(imgLocation + filename, UriKind.Relative));
        BitmapImage image = new BitmapImage();
        image.SetSource(imageResource.Stream);

        return image;
    }

私はできる限り掘り下げましたが、imageResourceは常にどういうわけかNullになります。私の人生では、どこが間違っているのかわかりません。

ここに 2 つのプロジェクトへのリンクを含めておきます(129 MB、申し訳ありません)。「開始」フォルダーの下にあるものはすべて、これまでに行ったことです (実行時に画像ページに移動しようとすると例外がスローされます)。「End」フォルダの下にあるものはすべて、最終的にはどのように見えるか、機能しているものです。

私は C# と WP7 の開発に非常に慣れていないので、どんな助けでも大歓迎です。ありがとうございました!

4

2 に答える 2

2

.bmp のビルドを「Resource」に変更してみてください。

それを説明するいくつかのリンクを次に示します。

http://forums.silverlight.net/t/238891.aspx/1

コンテンツ リソースで呼び出された Application.GetResourceStream は引き続き null を返す

于 2012-09-01T00:47:58.823 に答える
1

問題は、画像ディレクトリをApp.xamlファイルに設定すると、チュートリアルに誤りがあることです。ImagesLocation次のように、アプリケーション リソースを設定する必要があります。

<system:String x:Key="ImagesLocation">Begin;component/Assets/Images/</system:String>

Beginプロジェクト名はセパレーター;component/として必要です。最後にAssets/Images/、画像ディレクトリへの相対パスです。

于 2012-09-19T20:07:57.870 に答える