У меня есть библиотека классов (mylibrary), которая имеет ресурс под названием «close.png». Я использовал рефлектор redGate, чтобы подтвердить, что ресурс действительно присутствует в dll. Теперь я использую mylibrary.dll в проекте, где я попытаться извлечь этот «close.png» ресурс, как это:проблема загрузки ресурса из библиотеки классов
BitmapImage crossImage = new BitmapImage();
crossImage.BeginInit();
crossImage.UriSource = new Uri(@"/mylibrary;component/Resources/close.png", UriKind.RelativeOrAbsolute);
crossImage.EndInit();
Этот BitmapImage crossImage затем используется как:
Button closeButton = new Button()
{
Content = new System.Windows.Controls.Image()
{
Source = crossImage
},
MaxWidth = 20,
MaxHeight = 20
};
На этом я не получаю исключений, но кнопка не показывает изображение. Кроме того, я вижу информацию об исключении, если я исследую «контент» кнопки в отладчике.
В редакторе ресурсов есть также ComboBox называется «Модификатор доступа» рядом с «Добавить ресурс '. Установите его в * public * для доступа к ресурсу из другой сборки. – Oliver
И тогда вы должны использовать GetAssembly, см. Больше здесь: http://www.csharper.net/blog/getting_an_embedded_resource_file_out_of_an_assembly.aspx – RvdK