2013-11-08 3 views
1

В настоящее время я могу выбрать несколько файлов, но когда я нажимаю кнопку «Открыть», выбранные изображения не отображаются. Вместо этого в качестве текста появляется «Windows.UI.XAML.Media.Imaging.BitmapImage». Функциональность FlipView все еще существует. Что я делаю не так?Почему мой флипвью не показывает никаких фотографий?

XAML.

<FlipView x:Name="flpView" Grid.Row="1" Margin="10, 10, 10, 10"> 
    <Image x:Name="images" Stretch="UniformToFill" /> 
</FlipView> 

За кодом.

public async Task flipviewload() 
{ 
    // Add code to perform some action here. 
    Windows.Storage.Pickers.FileOpenPicker openPicker = new Windows.Storage.Pickers.FileOpenPicker(); 
    openPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary; 
    openPicker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; 

    // Filter to include a sample subset of file types. 
    openPicker.FileTypeFilter.Clear(); 
    openPicker.FileTypeFilter.Add(".bmp"); 
    openPicker.FileTypeFilter.Add(".png"); 
    openPicker.FileTypeFilter.Add(".jpeg"); 
    openPicker.FileTypeFilter.Add(".jpg"); 
    var files = await openPicker.PickMultipleFilesAsync(); 

    var images = new List<BitmapImage>(); 
    if (files != null) 
    { 
     //foreach (StorageFile Images in files) 
     foreach (var file in files) 
     { 
      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.Source = bitmapImage; 
       images.Add(bitmapImage); 
      } 
     } 
    } 
    flpView.ItemsSource = images; 
} 

Я также добавил Task foo = flipviewload(); в моей общественной MainPage();

ответ

2

Вы получите этот результат, потому что рендеринг по умолчанию вызывает ToString() по этому пункту, который печатает имя класса. Если вы хотите отобразить изображение, вы должны указать ItemTemplate:

<FlipView x:Name="flpView" Grid.Row="1" Margin="10, 10, 10, 10"> 
    <FlipView.ItemTemplate> 
     <DataTemplate> 
      <Image Stretch="UniformToFill" Source="{Binding}" /> 
     </DataTemplate> 
    </FlipView.ItemTemplate> 
</FlipView> 
+0

Спасибо большое :) – Poji

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