Программное добавление словаря ресурсов в код вместо App.XAML - PullRequest
0 голосов
/ 24 апреля 2020

Я добавляю словари ресурсов программно в класс, который унаследован от 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, прекрасно работает во время выполнения, все стили, определенные в программном обеспечении, добавляют словари ресурсов, на которые правильно ссылаются. Однако во время разработки стили, которые программно добавляют словари ресурсов, не выбранные при проектировании окон, и показывают ошибку как «Ресурс» не может быть разрешен ».

Как решить эту проблему?

...