Это автономный элемент управления WPF в DLL? Есть два способа, которыми ресурсы могут быть встроены ... как часть файла .resources (например, вкладка "Ресурсы" проекта) или как файлы, включенные как "Встроенные ресурсы" ...
Чтобы получить ссылку на сборку для DLL, обычно это проще всего:
var ass = typeof(ClassInOtherDll).Assembly;
В ресурсах
Если это часть ресурсов проекта по умолчанию, а не другой файл .resources, включенный в DLL, вы можете использовать базовое имя по умолчанию.
var ass = typeof(ClassInTargetDLL).Assembly;
var rm = new ResourceManager("...BaseName...", ass);
BaseName for default project resources is :
C# := Namespace.Properties.Resources
VB := Namespace.Resources
После этого вы можете просто вызвать GetObject () и выполнить приведение обратно:
var myImage = rm.GetObject("check_16");
return myImage as Bitmap;
Если вы хотите узнать, что там, получите ссылку на сборку и позвоните
ass.GetManifestResourceNames ()
- .resources файлы могут использоваться с ResourceManager
- встроенные ресурсы будут отображаться в виде списка. Для этого используйте другой метод.
И все это при условии, что они используют культуру по умолчанию =)
В качестве встроенных ресурсов
Вы можете использовать обычные методы сборки, чтобы получить встроенный ресурс. Вы найдете его по имени, а затем вам нужно будет преобразовать поток обратно в нужный вам тип.
GetManifestResourceNames()
GetManifestResourceStream(name)
Я обычно использую это так:
// called GetMp3 in the post, but it returns a stream. is the same thing
var stream = GetResourceStream("navigation.xml");
var reader = New XmlTextReader(stream);
return reader;
Чтобы получить изображение, которое является встроенным ресурсом, это работает для меня:
var stream = GetResoureStram("check_32.png");
var bmp = new Bitmap(stream);
this.MyButton.Image = bmp;