2

xamlファイルには、OutputImgという名前の画像があります。また、画像の名前を表示するためのOutputTBという名前のテキストブロックと、Picturesフォルダーから画像を選択できるボタンがあります。

背後にあるコード:

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    FileOpenPicker openPicker = new FileOpenPicker();
    openPicker.ViewMode = Picker.ViewMode.List;
    openPicker.SuggestedStartLocation = PickerLocationId.PicutresLiibrary;
    openPicker.FileTypeFilter.Add(".png");
    StorageFile.file = await openPicker.PickSingleFileAsync();
    OutputTB.text = file.Name;


    BitmapImage image = new BitmapImage(new Uri(file.path));
    OutputImg.Source = image;
}

質問は、エラーが発生しなくても、画像が表示されないことです。画像の名前をOutputTB.textに書き込みますが、画像は空のままです。選択した画像をOutputImg画像ボックスに表示するにはどうすればよいですか。

私がここで見逃している本当に基本的なことがあるかもしれないことを理解していますが、それは単に学習プロジェクトであることを意味していました

4

1 に答える 1

4

古いスタイルのパス(例)を与えるため、ビットマップfile.pathのオブジェクトを作成するために使用することはできません。ビットマップは、新しいスタイルのURIパス(例)を想定しています。Urifile.pathc:\users\...\foo.pngms-appdata:///local/path..to..file.../foo.png

ただし、私が知る限り、PicturesLibraryの新しいスタイルのURIパスを指定する方法はありません。したがって、簡単な回避策を使用する必要があります。

ファイルへの参照があるので、代わりにファイルのストリームにアクセスして、ストリームをビットマップのソースとして設定できます。

StorageFile file = await openPicker.PickSingleFileAsync();
OutputTB.text = file.Name;

// Open a stream for the selected file.
var fileStream =
    await file.OpenAsync(Windows.Storage.FileAccessMode.Read);

// Set the image source to the selected bitmap.
BitmapImage image = new BitmapImage();
image.SetSource(fileStream);

OutputImg.Source = image;
于 2013-03-25T20:45:01.867 に答える