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#访问Resources.resx中的资源
            ResourceManager rmManager = global::AddMenuToRevit2013.Properties.Resources.ResourceManager;
            object obj = rmManager.GetObject(pngName);
            if (obj == null)
            {
                MessageBox.Show("未找到图片:" + pngName);
                return null;
            }
            System.Drawing.Bitmap b = obj as System.Drawing.Bitmap;
            if (b != null)
            {
                return b;
            }
            else
            {
                MessageBox.Show("未找到图片:" + pngName);
                return null;
            }
        }

        // System.Drawing.Bitmap要如何轉換成WPF中可用的ImageSource
        /tp://www.dotblogs.com.tw/bauann/archive/2013/04/18/101793.aspx
        public static BitmapImage BitmapToBitmapImage(System.Drawing.Bitmap bitmap)
        {
            BitmapImage bitmapImage = new BitmapImage();
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            bitmap.Save(ms, bitmap.RawFormat);
            bitmapImage.BeginInit();
            bitmapImage.StreamSource = ms;
            bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
            bitmapImage.EndInit();
            bitmapImage.Freeze();
            return bitmapImage;
        }
原文地址:https://www.cnblogs.com/xpvincent/p/3808627.html