Я добавляю словари ресурсов программно в класс, который унаследован от System. Windows .Appliction.
public partial class ApplicationBase : System.Windows.Application
{
public ApplicationBase()
{
List<Uri> uris = null;
uris = GetResourceURIs();
foreach (Uri uri in uris)
{
this.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = uri });
}
}
protected virtual List<Uri> GetResourceURIs()
{
List<Uri> returnVal = null;
returnVal = new List<Uri>();
returnVal.Add(new Uri("/ApplicationBase;component/Themes/Converters.xaml", UriKind.Relative));
returnVal.Add(new Uri("/ApplicationBase;component/Themes/DefaultStyles.xaml", UriKind.Relative));
returnVal.Add(new Uri("/ApplicationBase;component/Themes/ThemeClassic.xaml", UriKind.Relative));
return returnVal;
}
}
ApplicationBase находится в библиотеке классов, которая будет использоваться в качестве базового класса для все мое приложение WPF.
Это приложение WPF, которое наследует ApplicationBase, прекрасно работает во время выполнения, все стили, определенные в программном обеспечении, добавляют словари ресурсов, на которые правильно ссылаются. Однако во время разработки стили, которые программно добавляют словари ресурсов, не выбранные при проектировании окон, и показывают ошибку как «Ресурс» не может быть разрешен ».
Как решить эту проблему?