<FlipView x:Name="flipView1"">
<FlipView.ItemTemplate>
<DataTemplate>
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding PicFiles}" />
</Image.Source>
</Image>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
및 코드 숨김, 위의 코드는 권장되지 않는 액세스하기위한 파일의 전체 파일 시스템 경로 속성을 얻을. 상대 API 인 StoragFile
을 사용할 수 있습니다. 자세한 내용은 Skip the path: stick to the StorageFile을 참조하십시오. QueryOptions
은 귀하의 상황에서 걸러 낼 수 있습니다.
둘째, UriSource
속성에 대한 전체 파일 시스템 경로 값을 입력해도 작동하지 않습니다. 앱 데이터에 저장된 파일에 액세스하려면 체계와 함께 Uri
을 사용해야합니다. 참조 할 수있는 세부 사항은 How to load file resources (XAML)입니다.
마지막으로 바인딩이 올바른 방식이 아니며 전체 컬렉션을 UriSource
속성에 바인딩하는 경우 실제로는 Uri
값이 필요합니다.
그래서 업데이트 된 전체 코드는 다음과 같이 뒤에
<FlipView x:Name="flipView1" >
<FlipView.ItemTemplate>
<DataTemplate>
<Image >
<Image.Source>
<BitmapImage UriSource="{Binding}" />
</Image.Source>
</Image>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
코드 :
private async void GetPicFilesFromStorePath()
{
//var path = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
//var a = Directory.GetFiles(Name, "*.*").Where(x => x.EndsWith(".jpg"));
//foreach (var x in a)
//{
// PicFiles.Add(new Uri((String.Format("ms-appdata:///local/{0}", x))));
//}
StorageFolder localfolder = Windows.Storage.ApplicationData.Current.LocalFolder;
List<string> fileTypeFilter = new List<string>();
fileTypeFilter.Add(".jpg");
QueryOptions queryOptions = new QueryOptions(Windows.Storage.Search.CommonFileQuery.OrderByName, fileTypeFilter);
StorageFileQueryResult queryResult = localfolder.CreateFileQueryWithOptions(queryOptions);
var files = await queryResult.GetFilesAsync();
foreach (StorageFile x in files)
{
PicFiles.Add(new Uri((String.Format("ms-appdata:///local/{0}", x.Name))));
}
flipView1.ItemsSource = PicFiles;
}
문제는 이미 8 시간 후에 "ms-appdata : /// local /"접두어를 사용하여 해결됩니다. 나는 나의 질문에 지금 대답하기 위해 여기에 돌아온다. 그리고 톱은 하루 후에 정답에 답했다. –