Получить ImageSource из растрового изображения?

Я хочу установить фоновое изображение для моей формы/окна как этот парень, но вместо файла изображения на диске у меня есть System.Drawing.Bitmap в памяти.

Мне нужно сделать что-то вроде этого:

this.Background = new ImageBrush(new BitmapImage(bmp));

За исключением BitmapImage не будет принимать значение Bitmap и не будет ImageBrush, и я не уверен, будет ли кто-либо из других. Там один называется BitmapCacheBrush, но я не знаю, что это делает.

Ответы

Ответ 1

Nevermind, я понял это.

public static Brush CreateBrushFromBitmap(Bitmap bmp)
{
    return new ImageBrush(Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()));
}

кредит