0

Пользователь выбирает изображение из файловой системы. После этого я хочу показать это изображение на странице. Что мне делать? Кажется, что у элемента управления изображения нет доступа к выбранным файлам. Должен ли я скопировать его в локальное хранилище приложений? Правильно ли это?Как связать изображение с выбранным файлом из папки без приложения?

ответ

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; 
    } 
}