WPF - изображение «не является частью проекта или его действие по сборке не установлено как ресурс» - PullRequest
30 голосов
/ 12 марта 2009

У меня есть проект, который требует изображения в окне. Это статичное изображение, и я добавил его через «Добавить> Существующий элемент». Он существует в корне проекта.

Я ссылаюсь на изображение на тестовой странице примерно так -

<Page x:Class="Critter.Pages.Test"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Test">
      <Image Source="bug.png"/>
</Page>

Проблема в том, что я получаю сообщение о том, что его нельзя найти, или его действие сборки не является ресурсом, но оно существует, а его действие сборки является ресурсом Если я создаю новое приложение и просто выбрасываю его в окно, оно работает нормально.

Любая помощь будет великолепна.

Ответы [ 10 ]

32 голосов
/ 12 марта 2009

Попробуйте выполнить полную перестройку или удалите файлы сборки, а затем соберите файл.

Visual Studio не всегда получает изменения в ресурсах, и перекомпиляция может быть затруднена.

Также попробуйте использовать полный URI, поскольку это помогло мне, когда у меня возникла такая же проблема. Что-то вроде

pack://application:,,,/MyAssembly;component/bug.png
20 голосов
/ 07 июля 2011

→ Щелкните правой кнопкой мыши файл изображения → Нажмите собственности → Выберите «Создать действие для ресурса» → Очистить и построить решение → Запустить решение

Вы получите все.

16 голосов
/ 30 сентября 2009

У меня была такая же проблема. Очистка и перестройка решения не устранили его, поэтому я перезапустил Visual Studio, и это произошло. Мы надеемся, что Visual 2010 исправит эту проблему и многие другие, которые используют wpf в Visual 2008.

13 голосов
/ 02 марта 2012

Попробуйте начать путь к вашему изображению с "/":

<Image Source="/bug.png"/>
4 голосов
/ 13 мая 2012

Есть решение вашего вопроса

<Image Source="/WpfApplication4;component/images/sky.jpg" />

"компонент" - это не папка!

2 голосов
/ 11 октября 2009

Нет, или, по крайней мере, текущая бета нет. Я нашел эту страницу, глядя на точно такую ​​же проблему. Перестроить / очистить ничего не сделал. После закрытия и перезагрузки решения файл волшебным образом снова стал совместимым.

1 голос
/ 05 сентября 2014

Я столкнулся с точно такой же проблемой, но перезапуск VS2008 или очистка и перестройка проекта не работали для меня. В конце концов, следующие шаги сделали свое дело.

  • В проводнике Windows скопируйте изображение в папку ресурсов вашего проекта. Пример: MyProject \ Resources \
  • В Visual Studio щелкните правой кнопкой мыши на Ресурсах и выберите «Добавить> Существующий элемент» и выберите изображение, которое вы только что скопировали в
  • В форме XAML установите источник изображения следующим образом: "Source="Resources/MyImage.ico" (мое изображение было сохранено в виде файла значка (.ico), но этот подход должен работать для любого типа изображения

Надеюсь, это кому-нибудь поможет

1 голос
/ 19 марта 2010

Пример асинхронной загрузки, другой вариант. Пример clip.mp4 находится в корне веб-проекта.

void Landing_Loaded(object sender, RoutedEventArgs e)
{
    //Load video async

    Uri pageUri = HtmlPage.Document.DocumentUri;
    Uri videoUri = new UriBuilder(pageUri.Scheme, pageUri.Host, pageUri.Port, "clip.mp4").Uri;           

    WebClient webClient = new WebClient();
    webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
    webClient.OpenReadAsync(videoUri);
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    byte[] VideoBuffer = new byte[e.Result.Length];
    e.Result.Read(VideoBuffer, 0, (int)e.Result.Length);
    MemoryStream videoStream = new MemoryStream(VideoBuffer);
    ContentVideo.SetSource(videoStream);
    ContentVideo.Stop();
    ContentVideo.Play();
}
0 голосов
/ 06 февраля 2013

У меня было то же сообщение об ошибке, но мои проблемы были простой ошибкой NOOB.

Когда я добавил свои файлы .ico в «Мой проект / Ресурсы», VS создал подпапку «Ресурсы», и я пытался использовать;

<Window Icon="icons1.ico">

когда я должен был использовать;

<Window Icon="Resources/icons1.ico">

... не судите, я начал использовать WPF 1 неделю назад:)

0 голосов
/ 26 декабря 2010

У меня была похожая проблема. После того, как я удалил файл someStyle.xaml, который я на самом деле не использовал, из обозревателя решений. Затем я восстановил файл, но никаких изменений не произошло. Очистка и перестройка проекта не помогли.

Просто удаляем соответствующую строку:

<ResourceDictionary Source="someStyle.xaml"/> 

сделал свое дело.

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