2014-12-26 4 views
0

Мы разрабатываем приложение, которое должно прикрепить изображение во время выполнения и отображать его в пользовательском интерфейсе. Мы используем следующий набор кода файла для него:Windows phone 8.1 загрузка изображения на UI

private void Btn_Attach_File_Click(object sender, RoutedEventArgs e) 
{ 
      FileOpenPicker fileOpenPicker = new FileOpenPicker(); 
      fileOpenPicker.FileTypeFilter.Add(".jpg"); 
      fileOpenPicker.FileTypeFilter.Add(".jpeg"); 
      fileOpenPicker.FileTypeFilter.Add(".png"); 
      fileOpenPicker.ContinuationData["Operate"] = "OpenImage"; 
      fileOpenPicker.PickSingleFileAndContinue(); 
      } 

Кроме того, чтобы продолжить приложение после выбора файла из хранилища, вот код:

public async void ContinueFileOpenPicker(FileOpenPickerContinuationEventArgs args) 
     { 
      if ((args.Files != null && args.Files.Count > 0)) 
      { 
       IReadOnlyList<StorageFile> files = args.Files; 

       Image myImage = new Image(); 
       foreach (StorageFile file in files) 
       { 
        if (args.ContinuationData["Operate"] as string == "OpenImage" && args.Files !=   null && args.Files.Count > 0) 
        { 
         IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
         System.Diagnostics.Debug.WriteLine(file.Name); 
         System.Diagnostics.Debug.WriteLine(file.Path); 

         using (StorageItemThumbnail thumbnail = await file.GetThumbnailAsync(ThumbnailMode.SingleItem, 190)) //, ThumbnailOptions.UseCurrentScale); 
         { 
          if (thumbnail != null && thumbnail.Type == ThumbnailType.Image) 
          { 
           BitmapImage bitmapImage = new BitmapImage(); 
           bitmapImage.SetSource(thumbnail); 

           myImage.Source = bitmapImage; 

          } 
         } 
        } 
       } 
      } 
     } 

Приведенный выше код в файле xaml.cs , Но проблема в том, что, хотя я загружаю файл, в пользовательском интерфейсе нет вложения. Нужно ли вносить какие-либо изменения в соответствующий файл xaml? мы много искали на нем, но не смогли найти решение.

Спасибо заранее,

+0

Можете ли вы показать нам код, в котором вы настраиваете свое изображение на некоторый элемент управления пользовательского интерфейса? – RenDishen

+0

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

ответ

0

Во-первых, сделать управление изображения в XAML:

<Image Name="img"/> 

В коде после цикла:

this.img.Source = myImage.Source; 
//For better perf according to the docs, specify this 
//this.img.Source.DecodePixelWidth = 200 

Конечно, это можно сделать привязку вместо используя свойство Name, но это самый простой способ.

Прочитайте документацию: MSDN

одна вещь, петля foreach (StorageFile file in files) не то, что полезно, если у вас есть один файл, и если у вас есть более чем один файл, он будет считать последний файл.

Не стесняйтесь спрашивать больше информации!

Счастливое кодирование :)!

+0

Спасибо за ваш ответ. Я должен выбрать несколько файлов, и все файлы должны быть в пользовательском интерфейсе приложения в выбранной последовательности. – alka

+0

Я использую ListView для этой цели в файле .xaml и устанавливаю свойство ItemsSource объекта класса ListView. Но настройка работает только один раз. – alka