2014-03-13 4 views
0

Windows Store 응용 프로그램의 리소스에서 이미지를 표시하는 샘플을 많이 발견하여 샘플 내에 이미지를 표시 할 수있게 만들었지 만 디렉토리에 이미지를 표시하거나 최소한 내가 제공 한 이미지 파일 이름을 표시해야합니다. 코드별로 지금까지 시도한 모든 것들과 함께 플립 뷰는 비어 있습니다.플립 뷰의 디렉토리에서 이미지 파일을 표시하는 방법은 무엇입니까?

<FlipView x:Name="flipView1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="809,350,9,7" Width="548" Height="411" > 
    <FlipView.ItemTemplate> 
     <DataTemplate> 
      <Image Source="{Binding Path=Image }" Stretch="Uniform"/> 
     </DataTemplate> 
    </FlipView.ItemTemplate> 
</FlipView> 

이 작동하지만, 먼저 자원 이미지를 추가하는 저를 필요로 ....

ImageBrush brush1 = new ImageBrush(); 
brush1.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/P1000171.jpg")); 
FlipViewItem flipvw1 = new FlipViewItem(); 
flipvw1.Background = brush1; 
flipView1.Items.Add(flipvw1); 

하지만 (에 : 나는 어쩌면 뭔가를 분명 실종, 이것은 관련된 XAML의 일부입니다 예) 그렇지 않습니다.

string name = String.Format(@"c:\temp\P1000171.JPG"); 
Uri uri = new Uri(name); 
BitmapImage img = new BitmapImage(uri); 
flipView1.Items.Add(img); 

무엇이 놓치겠습니까?

답변

0

그동안 나는 미래의 독자를 위해 내가 지금 추가 한 답을 찾았습니다. FolderPicker를 사용하여 선택하지 않고 Windows 8 앱이 대부분의 PC 디렉토리에 액세스 할 수 없기 때문에 위의 예는 작동하지 않습니다.

<Image Source="{Binding}" Stretch="UniformToFill"/> 

작업이 아래 Flipview에서 사진 라이브러리에있는 모든 .JPG 파일을 보여줍니다 : 여기 위의 XAML을 변경 한

StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFolderToken", folder); 

:이 프로그램은 나중에 그 디렉토리를 다시 사용할 수 있습니다 , Package.appxmanifest, Capabilities에서 "Pictures 라이브러리"가 확인 된 경우 :

public async Task flipviewload() 
{ 


    IReadOnlyList<StorageFile> fileList = await picturesFolder.GetFilesAsync(); 
    var images = new List<BitmapImage>(); 
    if (fileList != null) 
    { 
     foreach (StorageFile file in fileList) 
     { 
      string cExt = file.FileType; 
      if (cExt.ToUpper()==".JPG") 
      { 
       Windows.Storage.Streams.IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
       using (Windows.Storage.Streams.IRandomAccessStream filestream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read)) 
       { 
        BitmapImage bitmapImage = new BitmapImage(); 
        await bitmapImage.SetSourceAsync(fileStream); 
        images.Add(bitmapImage); 
       } 
      } 
     } 
    } 
    flpView.ItemsSource = images; 
}