InteropBitmap к BitmapImage

Я пытаюсь Преобразовать a Bitmap (SystemIcons.Question) к a BitmapImage таким образом, я могу использовать его в управлении Изображением WPF.

У меня есть следующий метод для преобразования его в a BitmapSource, но это возвращается InteropBitmapImage, теперь проблема состоит в том, как преобразовать ее в a BitmapImage. Прямой бросок, кажется, не работает.

Кто-либо знает, как сделать это?

КОД:

 public BitmapSource ConvertToBitmapSource()
        {
            int width = SystemIcons.Question.Width;
            int height = SystemIcons.Question.Height;
            object a = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(SystemIcons.Question.ToBitmap().GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(width, height));

            return (BitmapSource)a;
        }

свойство для возврата BitmapImage: (Связанный с моим Управлением Изображением)

public BitmapImage QuestionIcon
        {
            get
            {
                return  (BitmapImage)ConvertToBitmapSource();
            }
        }
5
задан Tony The Lion 13 March 2010 в 22:21
поделиться

2 ответа

InteropBitmapImage наследуется от ImageSource , поэтому вы можете использовать его непосредственно в элементе управления Image . Это не обязательно должно быть BitmapImage .

8
ответ дан 14 December 2019 в 01:06
поделиться

Вы должны уметь использовать:

    public BitmapImage QuestionIcon
    {
        get
        {
            using (MemoryStream ms = new MemoryStream())
            {
                System.Drawing.Bitmap dImg = SystemIcons.ToBitmap();
                dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                System.Windows.Media.Imaging.BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage();
                bImg.BeginInit();
                bImg.StreamSource = new MemoryStream(ms.ToArray());
                bImg.EndInit();
                return bImg;
            }
        }
    }
1
ответ дан 14 December 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: