2017-01-10 6 views
0

Я читаю данные с смарт-карты. Эти данные содержат изображение. кода, чтобы получить картину в классе ReadData:Convert drawing.bitmap to windows.controls.image

public Bitmap GetPhotoFile() 
    { 
     byte[] photoFile = GetFile("photo_file"); 
     Bitmap photo = new Bitmap(new MemoryStream(photoFile)); 
     return photo; 
    } 

код в XAML:

imgphoto = ReadData.GetPhotoFile(); 

Ошибка генерируется:
Не может неявно преобразовать тип 'System.Drawing.Bitmap' до ' System.Windows.Controls.Image '

Каков наилучший подход в этом вопросе?

ответ

2

Не создавайте System.Drawing.Bitmap из этого файла. Bitmap - это WinForms, а не WPF.

Вместо создания WPF BitmapImage

public ImageSource GetPhotoFile() 
{ 
    var photoFile = GetFile("photo_file"); 
    var photo = new BitmapImage(); 

    using (var stream = new MemoryStream(photoFile)) 
    { 
     photo.BeginInit(); 
     photo.CacheOption = BitmapCacheOption.OnLoad; 
     photo.StreamSource = stream; 
     photo.EndInit(); 
    } 

    return photo; 
} 

Затем назначьте возвращенное ImageSource к Source свойству управления изображения:

imgphoto.Source = ReadData.GetPhotoFile();