在WPF中放置一个图标对象

时间:2010-07-15 15:04:57

标签: wpf

我已经实例化了几个System.Drawing.Icon对象。请注意,这些是在运行时创建的,不会从文件系统中存储和加载。我想将这些图像放在我的WPF应用程序中。

然而,正如我在过去几个小时发现的那样,不可能简单地将一个对象(如system.drawing.image或图标)直接添加到画布/堆栈面板,也不可能设置源代码一个System.Windows.Controls.Image指向未存储在文件系统中的图像或图标(在我看来似乎如此)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这对我来说是动态设置一个WPF图像,其中包含从动态生成或从磁盘加载的位图加载的字节:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

using System.IO;
using System.Drawing.Imaging;

namespace Examples
{
    public class Util
    {
        private static void SetBitmap(Image imgDest, Bitmap bmpSource)
        {
            byte[] imageBytes;
            using (MemoryStream stream = new MemoryStream())
            {
                bmpSource.Save(stream, ImageFormat.Png);

                imageBytes = stream.ToArray();
            }

            BitmapImage bitmapImage = new BitmapImage();
            bitmapImage.BeginInit();
            bitmapImage.StreamSource = new MemoryStream(imageBytes);
            bitmapImage.EndInit();

            imgDest.Source = bitmapImage;
        }
    }
}