Пользователь выбирает изображение из файловой системы. После этого я хочу показать это изображение на странице. Что мне делать? Кажется, что у элемента управления изображения нет доступа к выбранным файлам. Должен ли я скопировать его в локальное хранилище приложений? Правильно ли это?Как связать изображение с выбранным файлом из папки без приложения?
0
A
ответ
1
У вас нет необходимости копировать. StorageFile
Объект имеет ссылку на файл, хранящийся на устройстве. Проверьте File picker sample на MSDN и руководство по быстрому старту для Accessing files with file pickers.
XAML
<Grid Background="{StaticResource ApplicationPageBackgroundBrush}">
<Image x:Name="img" Stretch="None" />`
</Grid>
С #
private async Task SetImage()
{
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".gif");
openPicker.FileTypeFilter.Add(".png");
StorageFile file = await openPicker.PickSingleFileAsync();
if(file != null)
{
BitmapImage bmp = new BitmapImage();
using(var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
bmp.SetSource(stream);
}
img.Source = bmp;
}
}