Если в WPF нет подходящего конвертера, он просто вызывает метод ToString()
, формат растрового изображения не подходит, обычно вы хотите использовать Image
с источником BitmapImage
, существует способы конвертации между различными форматами.
Вот один метод, который делает преобразование из Bitmap
в BitmapImage
:
public static BitmapImage BitmapToBitmapImage(System.Drawing.Bitmap bitmap)
{
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage();
bImg.BeginInit();
bImg.StreamSource = new MemoryStream(ms.ToArray());
bImg.CreateOptions = BitmapCreateOptions.None;
bImg.CacheOption = BitmapCacheOption.Default;
bImg.EndInit();
ms.Close();
return bImg;
}
Обратите внимание, что ImageFormat.Png
медленнее, чем несжатые форматы, но сохраняет прозрачность, если таковые имеются.
Теперь вы сможете использовать его в качестве источника элемента управления изображением, а этот элемент управления изображением - в качестве содержимого кнопки.