GetManifestResourceStream дает исключение Null Reference (имя параметра: streamSource) - PullRequest
3 голосов
/ 17 февраля 2012

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

имел в виду LR__ http://social.msdn.microsoft.com/Forums/en-US/lightswitch/thread/2d16c638-f833-4c4c-beec-656912a87b8e/#76fa5382-0135-41ba-967c-02efc3f8c3a2

System.Windows.Media.Imaging.BitmapImage image = new System.Windows.Media.Imaging.BitmapImage();
image.SetSource(Assembly.GetExecutingAssembly().GetManifestResourceStream(
    Application.Current.Details.Name + ".Resources.logo.jpg"));
Image myImage = new Image()
{
    Source = image,
    Stretch = System.Windows.Media.Stretch.Uniform,
    HorizontalAlignment = HorizontalAlignment.Left,
    Margin = new Thickness(2, 2, 2, 14),
    Cursor = System.Windows.Input.Cursors.Hand
};

Я много чего перепробовал, но не могу найти свою проблему !!

Ответы [ 4 ]

4 голосов
/ 22 февраля 2014

добавьте ваше изображение или файл в ваш проект, затем выберите ваш файл в окне обозревателя решений, затем в окне свойств выберите Build Action, затем установите значение "Embedded Resource" для свойств Build Action

только это

enter image description here

3 голосов
/ 18 февраля 2012

Установлено ли в Logo.jpg действие сборки для «Встроенного ресурса»?

Редактировать:

Здесь перевод C # моего GetResourceUri (заметьте, ему нужен Ресурс , а не Embedded Resource ):

public Uri GetResourceUri(this Assembly asm, string resourceName)
{
    Uri result = null;
    var assemblyName = new AssemblyName(asm.FullName).Name;

    result = new Uri(string.Format("/{0};component/{1}", assemblyName, resourceName), UriKind.Relative);

    return result;
}

Та же самая "техника" должна работать в C #.

У меня также естьпользовательское расширение оболочки (которое использует технику LR для добавления изображений на ленту и в меню навигации).Я просто заканчиваю некоторые вещи (написание «документации» занимает некоторое время), а затем я выпущу ее в галерее Visual Studio для сообщества (она называется Luminous Classic Shell).

Расширение позволяет получать изображения без необходимости писать код.

0 голосов
/ 12 июля 2012

У меня была эта проблема нулевого возврата, и я рвал на себе волосы, потому что это использование файлов изображений в качестве встроенных ресурсов - один из моих стандартных приемов.

В конце концов я обнаружил, что причина в том, что мне отправляли файлыот графического дизайнера, который использует Apple, и они не работали.Я возился с разрешениями;использовал программу Paint, чтобы сохранить их в другом формате, но ничего не получалось.В конце я создал совершенно новый файл в Paint, затем скопировал и вставил пиксели из исходного изображения.Затем это сработало.

Просто для протокола, кто-нибудь знает, почему это произошло?Это должно быть как-то в заголовочных блоках.

0 голосов
/ 19 февраля 2012

Вы можете использовать такой инструмент, как Reflector, чтобы увидеть полные имена ресурсов в сборке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...