Я пишу программу, которая должна получить доступ к изображениям из устаревшего формата файла данных. (Если быть точным: программа загружает свои изображения интерфейса непосредственно из файлов данных старой игры)
Поскольку все изображения хранятся в виде файлов Targa (TGA), я должен предварительно обработать их в файлы PNG. Я делаю это в локальной папке данных приложения.
Моя проблема - написание / авторизация файлов XAML с использованием этих изображений. Поскольку я не хочу распространять изображения (проблемы с авторским правом), я не могу просто включить их в качестве ресурсов в свое приложение. Это исключает обычный способ включения изображений в элементы управления WPF.
Я успешно попробовал поместить предварительно обработанные изображения в тот же каталог, что и сборка приложения, и сослаться на них, используя «pack: // siteoforigin: ,,, / cache / image.png». Это также работает в XAML Designer в Visual Studio и в Expression Blend 3.
Проблема с этим подходом заключается в том, что каталог приложения не всегда доступен для записи как текущий пользователь (особенно, если приложение находится в C: \ Program Files), поэтому хранение там изображений на этапе предварительной обработки находится вне вопрос для меня.
Альтернативный подход, который я успешно использовал, - это создание собственного протокола WebRequest, такого как cache: //, и его использование для URL-адресов изображений. Это работает в реальном приложении, но не в дизайнере Visual Studio или Expression Blend.
Кто-нибудь знает еще один хороший способ ссылки на изображения в файловой системе с помощью WPF? Или каким-то образом настроить загрузку ресурсов, совместимую с обычными решениями WPF Authoring?