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

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格式时会失真。

时间: 2024-10-08 13:45:30

WPF 引用DLL纯图像资源包类库中的图片的相关文章

WPF 将窗口控件封装到类库中使用

参考:https://blog.csdn.net/xionglifei2014/article/details/80782753 刚开始用插件式开发练习项目时添加新项时却不能添加WPF窗体,只有一个用户控件能添加. 后来发现是添加新建项目时添加的是类库就不行,改成添加WPF应用程序时可以正常添加. 但这不是一个好的解决方案,不符合插件式开发(需要的是dll)添加WPF应用程序Visual Studio会把它编译成exe,类库则编译成dll. 好的解决方案是添加一个Visual Studio模板:

Android资源之图像资源(1)

以前看别人的程序的drawable文件夹里有xml资源,说实话第一次见到这样的xml图像资源时,我真心不知道是干什么的.抽空学习了一下图像资源,才了解了这类图像资源的妙用.下面我来分享一下这部分知识: Android 中的图像资源文件保存在res/drawable目录中.在图像资源目录中不仅可以存储各种格式(jpg,png,gif等)的图像文件,还可以使用各种XML格式的图像资源来控制图像的状态 和行为. 1.普通图像资源 Android支持3种图像格式:png.jpg和gif.官方推荐使用pn

将数据库模型放入到.Net Core的类库中

一.前提概要 今年某天突然无聊,就决定学习.net core,此时的版本已经是.net core 1.1了.之前一直是用.net framework做项目,一直对Html.EditFor()等Html Helper不爽,感觉灵活性太差,此次看了微软的docs文档后,感觉到了.net core的强大之处,特别是Tag Helper,便决定投身到此平台中,但在新项目中发现了一个问题:之前做项目都是将数据库模型放在单独类库中,但现在发现.net core 类库的配置不一样,总是有问题,于是开始用bin

wpf 引用资源文件

一.什么是资源 通常使用  WPF  资源作为重用通常定义的对象和值的简单方法. 在 WPF 中资源通常用作"样式"(Style).样式模板.数据模板等. 二.资源的定义及 XAML 中引用 资源可以定义在以下几个位置: 1 应用程序级资源 定义在 App.xaml 文件中, 作为整个应用程序共享的资源存在  ; 在 App.xaml 文件中定义: <Application.Resources> <ResourceDictionary> <Resource

WPF 添加 Resources Dictionary 资源 一般类库项目中无法添加资源文件(ResourceDictionary)

原文:WPF 添加 Resources Dictionary 资源 一般类库项目中无法添加资源文件(ResourceDictionary) 在文件夹或者项目右键-> Add(添加),会弹出可以快捷添加的资源,但是你会发现没有 ResourceDictionary资源可以选择. 解决此问题方法: 第一步:工程->右键->Unload Project 第二步:刚刚Unload的这个工程->右键->Edit XXXX : 第三步:PropertyGroup中添加    <Pr

在SQL Server引用dll的流程

在SQL Server中引用dll分为两个步骤 1.创建一个dll文件 2.把dll文件放进SQL Server的程序集中.然后定义一个Function,就可以通过该Function来引用dll中的函数. 创建一个dll文件 1.点击“文件”->“新建”->“项目”->类库,把命名空间改成StringHelp,添加如下代码 namespace StringHelp //命名空间 { public class ClassConvert //类名 { //把输入的字符串中的小写字母变成大写字

Android NDK——使用Android Studio引用so库,jar包及module并使用JNI的正确姿势

引言 由于项目中需要用到JNI,以前虽然在Eclipse上使用过JNI和SO 文件,移植到Android Studio上的时候是花费好些力气的,也处理过不少常见的错误,而且网上很多文章都是只写了大致的步骤,忽略了很多细节,为了让新手们少走弯路,同时也是加强自己的理解,把自己一步一步的操作记录下来. 一.Android studio引入jar 不同于eclipse的配置build path,Android Studio可以通过图形界面Project Structure来配置dependencies

WPF代码引用Resouces中的图片

WPF引入了统一资源标识Uri(Unified Resource Identifier)来标识和访问资源.其中较为常见的情况是用Uri加载图像. Uri表达式的一般形式为:协议+授权+路径 协议:pack:// 授权:有两种.一种用于访问编译时已经知道的文件,用application:///.一种用于访问编译时不知道.运行时才知道的文件,用siteoforigin:///.在这里加载图片时,我们选用前者,即application:///,但是书写时候,我们一般用逗号代替斜杠,也就是改写作appl

WPF在DLL中读取Resource的方法

原文:WPF在DLL中读取Resource的方法 WPF是个用户控件,被WinForm调用.而WinForm是在一个DLL类库中被调用.试了很多方法,都无法将Resource中的图读进程序.用下面的方法总算实现了.   /根据图片的名称,从资源中找到它 public static System.Drawing.Bitmap GetPngFromResources(string pngName) { /tp://www.worlduc.com/blog2012.aspx?bid=760294 c#