Загрузка BitmapImage в коде - PullRequest
4 голосов
/ 29 апреля 2009

Из моей сборки (A) я хочу вызвать метод в другой сборке (B), который передает изображение. Это изображение затем отображается в окне WPF - окно является частью проекта B.

Кажется, я не могу передать ImageSource с пакетом: // uri, поскольку это оценивается в контексте B, поэтому я предполагаю, что мне нужно кэшировать изображение с помощью CachedBitmap (?), Когда он все еще в A.

        BitmapImage img = new BitmapImage(new Uri("Images/32px-Nuvola_apps_cache.png", UriKind.Relative));
        CachedBitmap cbmp = new CachedBitmap(img, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);

Мне удалось заставить это работать, если я установил изображение на Embedded Resource и загрузил его как поток, но это не так, как WPF.

Из пакета: кажется, документация, что я должен быть в состоянии сделать это, но я попробовал это ниже, и ни один не работает;

"Images / 32px-Nuvola_apps_cache.png": "Не удалось найти часть пути" "pack: // application: ,,, Images / 32px-Nuvola_apps_cache.png": "Префикс URI не распознан." . "pack: // siteoforigin: ,,, Images / 32px-Nuvola_apps_cache.png": "Префикс URI не распознан."

Все, что я хочу сделать, это загрузить файл Resource .png в память и передать его оптом методу в другой сборке.

Спасибо Пол.

1 Ответ

8 голосов
/ 29 апреля 2009

Попробуйте:

pack://application:,,,/YourAssemblyName;component/Images/32px-Nuvola_apps_cache.png
...