2015-12-14 2 views
0

Как получить определенное изображение (как поток) из папки \ Resources \ Desktop для рабочего стола приложения?Как читать изображение как поток из ресурсов?

В Visual Studio я импортировал изображение в папку \ Resources и имеет File Name и свойство Full Path. Я хотел бы использовать его имя.

Моя цель состоит в том, чтобы сделать это:

System.IO.Stream contentStream = get the image stream from \Resources 
System.Net.Mail.LinkedResource logo = new LinkedResource(contentStream); 
+0

На данный момент я не понимаю эту документацию, в частности, как используется тип 'Example', а где имя ресурса: https://msdn.microsoft.com/en-us/library/zxee5096(v= vs.110) .aspx? cs-save-lang = 1 & cs-lang = csharp # code-snippet-3 – Tim

+0

Я предполагаю, что 'Example' просто использует текущий класс для поиска сборки, но где они получают имя« SplashScreen », ? – Tim

ответ

3

У вас есть несколько простых вариантов.

Папка/Resources не является особой папкой. Вам все равно нужно выбрать любой элемент в обозревателе решений, который вы хотите встроить в сборку, а затем в окне «Свойства» укажите, что его тип сборки «Встроенный ресурс». Затем используйте ResourceManager.GetStream для извлечения содержимого в виде потока.

Более простой способ, в большинстве случаев, состоит в том, чтобы использовать окно конструктора проектов для добавления файла Resource.resx, а затем добавить файлы, которые вы хотите в конструктор ресурсов. Например, вы можете добавлять изображения, как это:

enter image description here

Visual Studio будет генерировать код для вас, чтобы получить файлы, которые вы встраивать этот путь.

+0

Спасибо. Я застрял в этой точке, пытаясь создать экземпляр ResourceManager. Что такое «baseName» по умолчанию, первый параметр, предоставленный конструктору? Если я перейду в Project Properties -Resources, я увижу там встроенные изображения. – Tim

+0

Я получаю эту ошибку: {"Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что \ Resources.resources \" правильно встроен или связан в сборку \ "foo \" во время компиляции или что все спутниковые сборки необходимы ... – Tim

+0

Мне часто приходится возиться, когда я беру первый подход непосредственно к использованию ResourceManager. Прочтите https://support.microsoft.com/en-us/kb/319292 для получения дополнительной справки по что я предпочитаю использовать конструктор ресурсов в большинстве случаев, гораздо проще управлять, и вам не нужно беспокоиться о правильном использовании имен, VS делает это за вас. Если вы хотите сделать это самостоятельно, используйте конструктор ресурсов, а затем посмотрите в созданном файле Resources.Designer.cs, чтобы узнать, как он создает ResourceManager. –

Смежные вопросы