WPF 引用DLL纯图像资源包类库中的图片_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WPF 引用DLL纯图像资源包类库中的图片

WPF 引用DLL纯图像资源包类库中的图片

 2015/3/13 23:02:49  耿爱学  程序员俱乐部  我要评论(0)
  • 摘要:1、建立WPF应用程序过程略。2、创建类库项目(图片资源包)创建图片资源类库项目MyImages,删除class1.cs,在项目属性的资源选项中选择“图像”类型,并在“添加资源”中点击“添加现有的文件”,把图像加入到资源。并把访问修饰符改为Public。3、在WPF应用程序中引用类库项目在WPF中通过MyImages.Properties.Resources.XXX即可访问图像。XXX为图像文件名(资源名称)
  • 标签:图片 资源
1、建立WPF应用程序              过程略。   2、创建类库项目(图片资源包)       创建图片资源类库项目MyImages,删除class1.cs,在项目属性的资源选项中选择“图像”类型,并在“添加资源”中点击“添加现有的文件”,把图像加入到资源。并把访问修饰符改为Public。   3、在WPF应用程序中引用类库项目        在WPF中通过 MyImages.Properties.Resources.XXX即可访问图像。XXX为图像文件名(资源名称)。但在WPF中的到图像还需一下工作。   4、WPF中创建Rectangle或其它采用ImageBrush对象为填充或背景的控件,将ImageBrush的ImageSource属性设置为资源包中图像的方法如下:
 /// <summary>
        /// 读取符号(图片资源库中的文件)
        /// </summary>
        /// <param name="symbolName"></param>
        /// <returns></returns>
        public static ImageBrush GetImagebrush(string ImageName)
        {
            ImageBrush imageBrush = new ImageBrush();
            System.Resources.ResourceManager rm = ImageLibrary.Properties.Resources.ResourceManager;
            System.Drawing.Bitmap b = (System.Drawing.Bitmap)rm.GetObject(ImageName);
            imageBrush.ImageSource = ToWpfBitmap(b);
            return imageBrush;
        }

      

 public static BitmapSource ToWpfBitmap(Bitmap bitmap)
        {
            using (MemoryStream stream = new MemoryStream())
            {
                //注意:转换的图片的原始格式ImageFormat设为BMP、JPG、PNG
                bitmap.Save(stream, ImageFormat.Png);

                stream.Position = 0;
                BitmapImage result = new BitmapImage();
                result.BeginInit();
                // According to MSDN, "The default OnDemand cache option retains access to the stream until the image is needed."
                // Force the bitmap to load right now so we can dispose the stream.
                result.CacheOption = BitmapCacheOption.OnLoad;
                result.StreamSource = stream;
                result.EndInit();
                result.Freeze();
                return result;
            }
        }

            

调用方法:           Rectangle1.Fill=GetImagebrush(ImageName);      注意转换的图片的原始格式ImageFormat必须设置正确。如原图片为PNG格式,调用时设为BMP格式时会失真。
发表评论
用户名: 匿名