Загрузка содержимого изображений из Blend из отдельного проекта - PullRequest
0 голосов
/ 15 апреля 2010

У меня есть решение VS2010 с 5 проектами. Два из этих проектов называются:

MyResources Применение

Проект Application содержит все представления и модели представления для запуска приложения, а проект Resources содержит все изображения, словари ресурсов и т. Д. Для создания тем и оформления.

То, как у меня настроены изображения в Ресурсах, для их действия по сборке установлено значение Контент, а для параметра Копирование - Копировать всегда. В моем проекте приложения я ссылаюсь на эти файлы, используя URI пакета. Пример:

"pack://siteoforigin:,,,/Themes/DefaultTheme/BackgroundImage.png"

Это прекрасно работает для меня. Папка тем и все ее подпапки правильно скопированы в нужную папку, так как я использую siteoforigin: //.

Однако это нарушает смешиваемость. Когда я загружаю проект в Blend 4, я получаю ошибки.

Если я использую siteoforigin, Blend пытается загрузить изображения из исполняемой папки blend.exe (в этом случае C: \ Program Files \ Microsoft Expression \ Blend 4 Beta \ Themes \ Default_Theme \ BackgroundImage.png ")

Если я изменю URI пакета на следующее:

pack://application:,,,/IQ.IQKiosk.Resources;component/Themes/DefaultTheme/BackgroundImage.png

Он пытается найти изображение в "themes / default_theme / backgroundimage.png"

Если я попытаюсь:

/MyResources;component/Themes/DefaultTheme/BackgroundImage.png

Он пытается найти изображение в "C: \ MyResources; component \ Themes \ DefaultTheme \ BackgroundImage.png"

Если я попытаюсь:

/Themes/DefaultTheme/BackgroundImage.png

Он пытается найти изображение в "C: \ Themes \ DefaultTheme \ BackgroundImage.png".

Так что теперь я застрял. Я не уверен, как ссылаться на мои изображения, не вставляя их в проект ресурса, и я не могу жестко закодировать каталог, потому что мои другие коллеги также имеют проект в разных папках.

Я попытался придумать способ получить правильный URI в правильном расположении файлов (по сравнению с файлом .sln было бы здорово) или сделать так, чтобы файлы копировались туда, где blend компилирует и выполняет проект. Увы, я не могу понять, как.

Кто-нибудь знает правильный способ загрузки этих изображений?

1 Ответ

0 голосов
/ 16 апреля 2010

Я понял это. Вместо использования URI пакета я просто использовал

new Uri(Environment.CurrentDirectory + "\\Themes\\DefaultTheme\\BackgroundImage.png")

и он нашел нужную папку, так как Evironment.CurrentDirectory дал мне нужную папку bin, куда были скопированы мои темы.

ура!

...