I have a merged resource dictionary in App.xaml
Main assembly, which combines various resource dictionaries from separate assemblies: Common and PresentationLayer.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Common;component/Themes/Button.xaml"/>
<ResourceDictionary Source="/PresentationLayer;component/DataTemplates/AppointmentsDataTemplates.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
At run time the styles in the resource dictionaries are applied to the controls correctly. However, at design time the styles are not applied and Visual Studio 2012 keeps giving the following error:
An error occurred while finding the resource dictionary "/Common;component/Themes/Button.xaml".
And warning:
The resource "BannerButton" could not be resolved.
I came across this post but the problem persists despite Build Action set to Resource. Also, I did not have this problem when running under Visual Studio 2010 or Expression Blend 4. The Main assembly definitely holds a reference to the Common assembly and I haven’t changed the Pack URIs.
asked Jan 18, 2013 at 5:14
Blake MumfordBlake Mumford
17.2k12 gold badges49 silver badges67 bronze badges
7
For VS2017 if assembly is referenced and double-checked that all namings are OK try to close VS and delete .vs
directory in solution directory. This will cause you to lose all user settings (startup project, WPF designer zoom, etc.) but will fix this.
answered Mar 29, 2019 at 13:53
3
This was a known issue with Visual Studio 2012. See this link at Microsoft Connect. After installing VS2012 Update 1 this issue resolved for me. If you think you’re running the most up to date version of VS2012 and still experiencing this issue, make absolutely sure that the update has been applied. I thought I had updated using Windows Update, but then found that I had to tell VS2012 to apply the update. After VS2012 did its thing everything was fine.
answered Feb 9, 2013 at 22:53
Blake MumfordBlake Mumford
17.2k12 gold badges49 silver badges67 bronze badges
1
If you are using Visual Studio 2017, try to restart your computer. The problem may be solved.
answered Sep 19, 2017 at 7:53
CasperCasper
4,42510 gold badges41 silver badges72 bronze badges
2
I’m using VS2019 getting this error.
I just restart the VS and the error disappeared.
answered May 5, 2021 at 13:12
Even WonderEven Wonder
1,1471 gold badge14 silver badges16 bronze badges
0
Try the same in Window.Resources, make sure you added namespace when using app.xaml and don’t forget to change the build option to page where you need to use that app.xaml.
answered Jan 18, 2013 at 5:47
I had the same Issue and the cause was wrong spelled word in the resource dictionary xaml file. Check the resource dictionary xaml file for wrong spellings and errors. After correcting the spelling it worked.
answered Jan 20, 2021 at 14:23
Stefan27Stefan27
8458 silver badges19 bronze badges
I’m in the process of building a WPF application and ran into an error when trying to reference a resource dictionary. Inside my WPF application project I have a folder called «Styles» to contain all the xaml style templates for my app:
In my app.xaml file I have this:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/MetroTheme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
However, when I hover over the source property I get an error saying «An error occurred while finding the resource dictionary «Styles/MetroTheme.xaml». I can see the xaml file inside the folder both in Visual Studio and in the file system.
I have also tried «/Styles/MetroTheme.xaml» and a pack uri for the source property, both with no success. Any idea why I’m getting this file not found error?
asked Jun 15, 2012 at 15:09
1
I had the same issue, but setting Build Action = Page did not solve for me. Turned out I needed to use the Pack URI Format. So,
<ResourceDictionary Source="pack://application:,,,/Styles/MetroTheme.xaml"/>
EDIT
Turns out the above will eliminate build error but still results in runtime error. I needed to include full assembly specification for complete resolution (even though all files are in same assembly):
<ResourceDictionary Source="pack://application:,,,/WpfApplication10;component/Styles/MetroTheme.xaml"/>
answered May 6, 2017 at 18:55
nmarlernmarler
1,4161 gold badge11 silver badges16 bronze badges
Make sure that the build action for MetroTheme.xaml is set to Page.
answered Jun 15, 2012 at 15:16
AndyAndy
6,3761 gold badge32 silver badges37 bronze badges
1
Sometimes closing Visual Studio and open it again solves this problem.
answered Jun 5, 2019 at 21:57
1
I confirm it because of some strange behavior on relative uri.
For example:
/SubProjectDir/WhatThingDir/YourResource.xaml
<ResourceDictionary> <SolidColorBrush x:Key="TheBrush" Color="Black" /> </ResourceDictionary>
/SubProjectDir/AnotherDir/YourControl.xaml
... <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/WhatThingDir/YourResource.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> ...
/MainExecution/MainWindow.xaml
... <sub:YourControl /> ...
It looks work well in designer. But when you run it, will throw cannot find resource execption.
Because /WhatThingDir/YourResource.xaml
means «Find the related resource from current root path«, but now the MainWindow
constructed YourControl
, so the current root path is start under MainExecution
. Then, it try to find the resource path /WhatThingDir/YourResource.xaml
in MainExecution
. That’s must fail!
But if you write this, it will works be fine:
/SubProjectDir/AnotherDir/YourControl.xaml
... <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="../WhatThingDir/YourResource.xaml" /> <!-- Here ^^^ Here --> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> ...
That’s will seek the resource in /SubProjectDir/AnotherDir/../WhatThingDir/YourResource.xaml
=> /SubProjectDir/WhatThingDir/YourResource.xaml
.
It’s ok!
answered Sep 14 at 7:29
Change the target .net version to an older one in the project properties and then reset to the previous version.
answered May 30, 2018 at 14:27
I have a merged resource dictionary in App.xaml
Main assembly, which combines various resource dictionaries from separate assemblies: Common and PresentationLayer.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Common;component/Themes/Button.xaml"/>
<ResourceDictionary Source="/PresentationLayer;component/DataTemplates/AppointmentsDataTemplates.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
At run time the styles in the resource dictionaries are applied to the controls correctly. However, at design time the styles are not applied and Visual Studio 2012 keeps giving the following error:
An error occurred while finding the resource dictionary "/Common;component/Themes/Button.xaml".
And warning:
The resource "BannerButton" could not be resolved.
I came across this post but the problem persists despite Build Action set to Resource. Also, I did not have this problem when running under Visual Studio 2010 or Expression Blend 4. The Main assembly definitely holds a reference to the Common assembly and I haven’t changed the Pack URIs.
asked Jan 18, 2013 at 5:14
Blake MumfordBlake Mumford
17.2k12 gold badges49 silver badges67 bronze badges
7
For VS2017 if assembly is referenced and double-checked that all namings are OK try to close VS and delete .vs
directory in solution directory. This will cause you to lose all user settings (startup project, WPF designer zoom, etc.) but will fix this.
answered Mar 29, 2019 at 13:53
3
This was a known issue with Visual Studio 2012. See this link at Microsoft Connect. After installing VS2012 Update 1 this issue resolved for me. If you think you’re running the most up to date version of VS2012 and still experiencing this issue, make absolutely sure that the update has been applied. I thought I had updated using Windows Update, but then found that I had to tell VS2012 to apply the update. After VS2012 did its thing everything was fine.
answered Feb 9, 2013 at 22:53
Blake MumfordBlake Mumford
17.2k12 gold badges49 silver badges67 bronze badges
1
If you are using Visual Studio 2017, try to restart your computer. The problem may be solved.
answered Sep 19, 2017 at 7:53
CasperCasper
4,42510 gold badges41 silver badges72 bronze badges
2
I’m using VS2019 getting this error.
I just restart the VS and the error disappeared.
answered May 5, 2021 at 13:12
Even WonderEven Wonder
1,1471 gold badge14 silver badges16 bronze badges
0
Try the same in Window.Resources, make sure you added namespace when using app.xaml and don’t forget to change the build option to page where you need to use that app.xaml.
answered Jan 18, 2013 at 5:47
I had the same Issue and the cause was wrong spelled word in the resource dictionary xaml file. Check the resource dictionary xaml file for wrong spellings and errors. After correcting the spelling it worked.
answered Jan 20, 2021 at 14:23
Stefan27Stefan27
8458 silver badges19 bronze badges
Я пытаюсь использовать тему для своего приложения WPF под названием Monotone, но у меня проблема с этим. Я следовал их инструкциям в разделе Как использовать, но получаю сообщение об ошибке «Произошла ошибка при поиске словаря ресурсов «Monotone.Colors.xaml»:
Хотя у меня есть все необходимые файлы в папке моего приложения:
Можешь мне помочь?
person
Johny
schedule
30.03.2018
source
источник
Ответы (1)
В документации я вижу, что «просто нужно добавить в app.xaml». Это не совсем правильно, и, возможно, это ваша проблема.
Вам необходимо добавить словари ресурсов в ваш проект. Убедитесь, что вы добавили их в свой проект. Если нет, щелкните правой кнопкой мыши проект, выберите «Добавить существующий» и найдите файлы.
Если вы уже это сделали, проверьте свойства. Выберите один из них в обозревателе решений и посмотрите в окне свойств (обычно прямо в обозревателе решений). У вас должно быть действие сборки: страница и копирование в выходной каталог: не копировать. Эти настройки компилируют их в ваш exe.
На самом деле вы можете загружать нескомпилированные словари ресурсов, но они должны находиться в папке bin/Debug рядом с вашим скомпилированным exe.
person
Andy
schedule
30.03.2018
Я занимаюсь созданием приложения WPF и сталкивался с ошибкой при попытке ссылаться на словарь ресурсов. В моем проекте приложения WPF у меня есть папка под названием «Стили», которая содержит все шаблоны стиля xaml для моего приложения:
В моем файле app.xaml у меня есть это:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/MetroTheme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Однако, когда я нахожусь над исходным свойством, я получаю сообщение об ошибке «Ошибка при поиске словаря ресурсов» Styles/MetroTheme.xaml «. Я вижу файл xaml внутри папки как в Visual Studio, так и в файловой системы.
Я также попробовал «/Styles/MetroTheme.xaml» и пакет uri для свойства source, оба без успеха. Любая идея, почему я получаю этот файл, не найдена ошибка?
Поделиться
Источник
4 ответа
Убедитесь, что для действия сборки для MetroTheme.xaml установлено значение Страница.
Andy
Поделиться
У меня была такая же проблема, но установка Build Action = Page не решила для меня. Оказалось, мне нужно было использовать Pack URI Format. Таким образом,
<ResourceDictionary Source="pack://application:,,,/Styles/MetroTheme.xaml"/>
ИЗМЕНИТЬ
Оказалось, что вышесказанное устраняет ошибку сборки, но все же приводит к ошибке выполнения. Мне нужно было включить полную спецификацию сборки для полного разрешения (даже если все файлы находятся в одной сборке):
<ResourceDictionary Source="pack://application:,,,/WpfApplication10;component/Styles/MetroTheme.xaml"/>
nmarler
Поделиться
Иногда закрытие Visual Studio и открытие его снова решает эту проблему.
Leonard Keret
Поделиться
Измените целевую версию .net на более старую в свойствах проекта, а затем сбросьте ее до предыдущей версии.
ABDULLA TK
Поделиться
Ещё вопросы
- 0конструкторы, вызывающие подкласс
- 1req.body не отображается как одна из пар ключ-значение, но req.headers и другие
- 0MySQL, как найти общие данные в нескольких таблицах
- 0Передача переменной из .htaccess на страницу PHP
- 1Как добавить аннотации Java в JNI SWIG API?
- 1Каков наилучший способ аутентификации двух типов пользователей (ученик и водитель) в моем приложении для Android с использованием Firebase
- 1Как написать модульные тесты для методов, которые сжимают и распаковывают?
- 1ASP.NET Validator для нескольких полей
- 1Scrolltoposition / smoothscrolltoposition для просмотра переработчика в макете с вложенной прокруткой
- 0CSS переход по клику
- 0Сделайте все экземпляры части слова курсивом
- 0Поисковое слово не найдено в векторе?
- 0C ++: Разница между аргументами и параметрами? [Дубликат]
- 0PHP взорваться, сохранить «остатки»
- 1Удалить в Java?
- 0PHP раскрывающийся список, который загружает файл из папки при нажатии на
- 0Поместите файл HTML внутри div в другой файл HTML
- 1Как закрыть всплывающее окно DatePicker, когда я щелкаю где-то еще в JDatePicker в java swing?
- 0Ошибка 400 (ошибка OAuth2) !! 1
- 0Функция не будет выполняться после анимации
- 0Последовательность H2 генерирует отрицательный номер в столбце [JPA Spring]
- 1Тревога не останавливается
- 0Yii визуализировать страницу с HTML идентификатором
- 0Как сделать снимок конечного результата после удаления элемента на изображение с помощью JavaScript?
- 1Где находится MVC в веб-API?
- 1div видимый false на стороне сервера с использованием класса div в c #
- 0Как включить хинтинг кода для CSS в Sublime Text 2?
- 1Кодировка Javax.ws при несовместимости парсинга
- 1Как реализовать http длинный опрос в Angular 2
- 1Использование потоков и асинхронных задач не может предотвратить ошибку ANR.
- 1Поместите текст внутри круга. d3.js
- 0По умолчанию работает только для 8 и 9. После этого он использует первое число и обрабатывает его как 1,2,3
- 0Невозможно вызвать один обработчик событий из другого обработчика событий в представлении Backbone
- 0jQuery UI-dialog- настройка кнопок динамически и передача значений в функцию
- 0Redshift — SQL Left Join не работает с коррелированным подзапросом и агрегированной функцией
- 0Использовать селекторы jQuery рекурсивно?
- 0каждый цикл jQuery
- 1Как получить один предмет в пиребазе?
- 1Диапазоны подстрок (Java)
- 1Как я могу сказать, почему я получаю IOException в строке 113 в com.sun.jdmk.comm.HttpSendSocket
- 1Записать строку с символами новой строки в файл
- 1Не удается избавиться от проблем с навигацией, вызванных BeautifulSoup
- 0рекурсия через функцию производных классов шаблонного класса
- 0HTML читается как недопустимый, перемещая содержимое <head> HTML в <body>
- 1Как я могу получить размеры GridBagLayout?
- 1Как получить маршрут REST API, такой как / api / library / 1 / books / 2 / dosomething? Q = params с WebAPI?
- 0Как найти количество элементов в динамическом массиве
- 0Синтаксическая ошибка C ++ — не удается определить проблему
- 1Преобразование байтового массива в изображение «Параметр недействителен».
- 1Объедините несколько строк кода C # для краткости или отдельно для ясности