2014-02-05 3 views
0

Я работаю над проектом winform, который показывает изображения с устройства. Проблема в том, что я конвертирую код из C# winform C# wpf, и я борюсь с кодом, отображающим изображенияЗагрузите несколько изображений в систему управления wpf

Это код в winform, который отлично работает.

void Ps_Sample_Apl_CS_ShowSilhouette(MemoryStream buff) 
{ 
    System.Drawing.Image img = System.Drawing.Image.FromStream(buff); 
    img.RotateFlip(RotateFlipType.RotateNoneFlipX); 
    ImagePic.Image = img; 
    return; 
} 

Это мой код, который им пытаются показать изображения, но не работает в МОФ

void Ps_Sample_Apl_CS_ShowSilhouette(MemoryStream buff) 
{ 
    System.Drawing.Image img = System.Drawing.Image.FromStream(buff); 

    BitmapImage myBitmapImage = new BitmapImage(); 
    myBitmapImage.BeginInit(); 
    myBitmapImage.StreamSource = buff; 
    //myBitmapImage.UriSource = new Uri(img.ToString()); 
    //myBitmapImage.DecodePixelWidth = 200; 
    ImagePic.Source = myBitmapImage; 
    myBitmapImage.EndInit(); 

    return; 
} 

Что я должен делать?

+0

myBitmapImage.EndInit(); ImagePic.Source = myBitmapImage; –

+0

Добавить 'myBitmapImage.CacheOption = BitmapCacheOption.OnLoad;' сразу после 'myBitmapImage.BeginInit();' и переключить 'ImagePic.Source = myBitmapImage;' с 'myBitmapImage.EndInit();' –

+0

Спасибо, я сделал это, я добавил 'myBitmapImage.CacheOption = BitmapCacheOption.OnLoad; 'и изменил положение' ImagePic.Source = myBitmapImage; 'с' myBitmapImage.EndInit(); ', но не работает после' myBitmapImage.EndInit(); 'он обращается к 'myBitmapImage.BeginInit();' –

ответ

0

Метод должен выглядеть следующим образом:

void Ps_Sample_Apl_CS_ShowSilhouette(MemoryStream buff) 
{ 
    BitmapImage bitmapImage = new BitmapImage(); 
    bitmapImage.BeginInit(); 
    bitmapImage.CacheOption = BitmapCacheOption.OnLoad; 
    bitmapImage.StreamSource = buff; 
    bitmapImage.EndInit(); 
    ImagePic.Source = bitmapImage; 
} 
+0

Это именно то, что я сказал, но кажется, что он не работает (что меня тоже удивило) –

+0

Спасибо вам, ребята, я не знаю, почему не работает, я использовал тот же код, который вы мне дали. Pos me mato, lol –

+0

Я нашел почему, потому что я пытаюсь обновить элемент управления из другого потока. –

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