WPF在DLL中读取Resource的方法

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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#访问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;
        }

以上是关于WPF在DLL中读取Resource的方法的主要内容,如果未能解决你的问题,请参考以下文章

WPF使用X:Static做多语言支持

WPF 之 资源(Resource)

如何在 WPF 中使用 nAudio 从 Resource 播放 mp3?

深入浅出WPF-10.Resource(资源)

在 C#(WPF) 中使用 C++ dll

请教WPF高手关于在XAML里面使用pack uri使用引用的dll里面的资源图片的问题。