2016-12-04 6 views
1

У меня есть Библиотека классов WPF с несколькими (локальными) изображениями, обозначенными как Ресурс. Они находятся в подпапке «Ресурсы». Для их использования я использую следующую разметку:Ссылка на изображения ресурсов в библиотеке классов WPF без цитирования Название сборки

Icon="/AssemblyName;component/Resources/Logo64x64.ico" 

И все работает отлично в этом сборке.

Моя проблема заключается в том, что я хочу использовать этот файл xaml в нескольких сборках с разными именами. То есть, AssemblyName может быть изменен из сборки для сборки. Есть ли способ ссылаться на изображения ресурсов без зависимости от AssemblyName? Или я могу использовать то, что динамически ссылается на имя сборки в разметке? Что-то вроде:

Icon="/%AssemblyName%;component/Resources/Logo64x64.ico" 

Или мне нужно обновлять AssemblyName каждый раз? Является ли хорошей идеей определять свойства в коде C# подкачки, а затем использовать привязку? Я избегаю этого, потому что для меня было очень много кода для ссылки на каждое изображение.

Насколько я знаю, вы не можете использовать URI пакета в библиотеках классов, верно? Любая помощь будет оценена по достоинству.

Спасибо!

+0

Вы имеете в виду разные сборки, содержащие одинаково именованных ресурсов файлов изображений, а совместное использование общего файла XAML со ссылками на эти ресурсы ? – Clemens

+0

@ Clemens, да, даже файлы изображений одинаковы и разделены между сборками. Спасибо за ваш комментарий, но я узнал, что делать, и решение было на самом деле очень простым - больше в ответе. –

ответ

0

Я не знаю, как я пропустил это, но, оказывается, я могу полностью избежать использования AssemblyName, поскольку ресурсы являются локальными, и на них можно ссылаться относительно. В моем случае файл XAML находится в другом подкаталоге, поэтому ресурс должен ссылаться как:

Icon="../Resources/Logo64x64.ico"