Назначить BitmapImage из Resource.resx в Image.Source?

Я хотел бы назначить BitmapImage из моего Resource.resx в Image. Раньше я сохранил .png изображение в Resource.resx. Это изображение теперь находится в "/Resources/logo.png".

После чтения нескольких сообщений SO и других статей у меня есть это сейчас:

logoImage.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resources/logo.png"));

К сожалению, это не сработает. Я не знаю, как это решить.

Я попытался заменить Pack-URI на полный путь, и он сработал, но я хотел бы использовать относительные пути, чтобы использовать тот же источник на разных машинах, на которых абсолютный путь был бы неправильным.

Может ли кто-нибудь помочь мне с этим? Спасибо заранее!

Ответ 1

Чтобы сделать работу Uri, файл logo.png должен содержаться в папке с именем "Ресурсы" в вашем проекте VS (см. первое изображение), а его действие сборки должно быть установлено в "Ресурс" (см. второе изображение),

VS Project

Build Action

Эта папка "Ресурсы" полностью не связана с Resource.resx. Вы можете переименовать его в любое удобное для вас время.