2016-12-28 3 views
1

Я пишу приложение UWP C#, которое отображает изображения из библиотеки фотографий пользователя. Я хотел бы посмотреть, как я могу получить все фотографии и отобразить их в GridViewItem и flipviewitem.Получение списка изображений из локальной папки

private async void Page_Loaded(object sender, RoutedEventArgs e) 
{ 
    var pictureQueryOptions = new QueryOptions(); 
    //Read through all the subfolders. 
    pictureQueryOptions.FolderDepth = FolderDepth.Deep; 
    //Apply the query on the PicturesLibrary 
    var pictureQuery = KnownFolders.PicturesLibrary.CreateFileQueryWithOptions(pictureQueryOptions); 
    // 
    var picturesInformation = new FileInformationFactory(pictureQuery, ThumbnailMode.PicturesView); 
    picturesSource.Source = picturesInformation.GetVirtualizedFilesVector(); 
} 

и

public class ImageConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string culture) 
    { 
     if (value != null) 
     { 
      var img = (IRandomAccessStream)value; 
      var picture = new BitmapImage(); 
      picture.SetSource(img); 
      return picture; 
     } 
     return DependencyProperty.UnsetValue; 
    }        

    public object ConvertBack(object value, Type targetType, object parameter, string culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 
+1

SO не является кодовым письмом. Пожалуйста, прочитайте о [ask] (http://stackoverflow.com/help/asking). –

+0

Я получил код, но как мне привязать фактическое изображение? Я получаю изображение для отображения, но это просто миниатюра. Как я могу получить фактический файл? –

+1

@TylerS Пожалуйста, разместите свой код, что вы пробовали и что не работает – Sxntk

ответ

0

Самое простое решение для вашего кода будет увеличивать размер эскизов (они могут получить до 1024px, так что это должно быть достаточно) с помощью этого конструктора:

FileInformationFactory.FileInformationFactory(IStorageQueryResultBase, ThumbnailMode, UInt32, ThumbnailOptions) 

Другие, чем , вы можете установить BitmapImage из StorageFile следующим образом: https://social.msdn.microsoft.com/Forums/en-US/bc9aa758-f211-468b-8168-a671b7a0c8b4/uwp-creating-bitmapimage-with-uri-accessing-file-from-same-uri-gives-exception?forum=wpdevelop

+0

Это, похоже, сработало. Единственное, что не отображается правильно, это портретные изображения. Благодаря! :) –

+1

@TylerS вы не говорите спасибо, здесь не по правилам - вы должны перенести и пометить ответ как правильный. –

0

вы можете получить пользовательскую библиотеку фотографий из

var myPictures = await Windows.Storage.StorageLibrary.GetLibraryAsync(Windows.Storage.KnownLibraryId.Pictures); 

перебрать все изображения из этой папки

обновление Package.appxmanifest

<Capabilities> 
<uap:Capability Name="picturesLibrary" /> 

+0

Я добавил это, но как мне привязать изображения? Я попробовал 'PictureSource.Source = myPictures, но приложение сломалось –

Смежные вопросы