WPF - Image "не является частью проекта, или для его действия сборки не задано значение Resource"
-
11-07-2019 - |
Вопрос
У меня есть проект, для которого требуется изображение в окне.Это статическое изображение, и я добавил его через "Добавить> Существующий элемент".Он существует в корневом каталоге проекта.
Я ссылаюсь на изображение на тестовой странице следующим образом -
<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 неделю назад:)