WPF - Image "не является частью проекта, или для его действия сборки не задано значение Resource"

StackOverflow https://stackoverflow.com/questions/638845

Вопрос

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

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

<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>

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

Любая помощь была бы очень кстати.

Это было полезно?

Решение

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

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

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

pack://application:,,,/MyAssembly;component/bug.png

Другие советы

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

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

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

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

<Image Source="/bug.png"/>

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

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

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

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

Пример асинхронной загрузки, другой вариант. Пример 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();
}

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

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

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

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

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

<ResourceDictionary Source="someStyle.xaml"/> 

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

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

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

<Window Icon="icons1.ico">

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top