#wpf #silverlight #xaml #embedded-resource
#wpf #silverlight #xaml #встроенный ресурс
Вопрос:
Мне кажется, что я решал эту проблему 10 раз раньше, но я никогда не могу вспомнить, как именно это сделать, так как кто-то решил сделать uri пакетов в xaml завершенным rocket science..
У меня есть изображение, помеченное как ресурс. У меня есть пользовательский элемент управления xaml в библиотеке классов (dll), который должен ссылаться на это изображение в разметке. У меня есть этот пользовательский элемент управления и изображение в двух библиотеках DLL — версии Silverlight и версии WPF.
Изображение находится в том же каталоге, что и UserControl в обеих версиях. Он помечен как «Ресурс»
У меня есть приложение Silverlight, которое ссылается на библиотеку DLL Silverlight, и приложение WPF, которое ссылается на библиотеку dll WPF.
Как я могу заставить свой xaml ссылаться на изображение с помощью локального относительного URI сборки, учитывая следующее:
- Я не знаю названия сборки, поскольку сборки SL и WPF имеют разные имена.
- Библиотеки DLL Silverlight и WPF имеют разные пути относительно корня сборки (версия UserControl на SL и изображение являются связанными файлами в каталоге с именем «Linked» в проекте SL.
Я пытался использовать
./MyImage.png
MyImage.png
/MyImage.png (which I know shouldn't work)
Ответ №1:
Просто «myImage.png» должен работать, если и он, и элемент управления находятся в корневой папке проекта. Если оба находятся под управлением — вам понадобятся «Элементы управления /myImage.png». Путь не относится к местоположению элемента управления — он относится к корневой папке проекта.
Комментарии:
1. Итак, как я могу сделать это относительно пути управления? Могу ли я вообще?
2. Я думаю, общий подход заключается в том, что вы сбрасываете все свои файлы изображений в одну папку, а элементы управления — в другую. Если бы вам действительно нужно было использовать путь относительно вашего элемента управления — вам пришлось бы сделать что-то вроде определения другого присоединенного свойства зависимости, которое переводило бы путь, относительный к элементу управления, в путь, относительный к проекту, но это, вероятно, было бы более сложным и подверженным ошибкам, чем простое использование фактического пути.
3. Итак, как это будет работать, когда у меня есть два проекта, один WPF и один SL, где путь относительно маршрута проекта — «Controls» для проекта WPF и «Linked Controls» для проекта SL?