Добавить / удалить MergedDictionaries из кода в приложении Windows 8

Я пытаюсь изменить MergedDictionaries из кода в приложении Windows 8. Мой App.xaml выглядит ниже,

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Common/TestTheme.xaml" />
            <ResourceDictionary Source="Common/StandardStyles.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

В этом я пытаюсь удалить все ResourceDictionary и добавить новый ResourceDictionary из кода позади. Я искал в сети, но не получил никакого решения. Нужна помощь, чтобы сделать это.

1 ответ

Кажется, что нет простого решения для вашего вопроса. Может быть, вы можете загрузить словарь ресурсов и прочитать все элементы, а также добавить объекты в другой словарь, как описано в MSDN

Вам разрешается добавлять элементы в существующий ResourceDictionary, вызывая Add (C# или Visual Basic) или Insert (C++/CX). Вы можете добавить либо к непосредственным ресурсам, либо к ресурсам приложения. Любой из этих вызовов API требует ключа, который удовлетворяет требованию, чтобы у каждого элемента в ResourceDictionary был ключ. Однако элементы, которые вы добавляете в ResourceDictionary во время выполнения, вообще не имеют отношения к ссылкам на ресурсы XAML. Необходимый поиск ссылок на ресурсы XAML происходит, когда XAML анализируется при загрузке приложения (или при обнаружении изменения темы), а коллекции, измененные во время выполнения, либо недоступны, либо сбрасываются.

Другие вопросы по тегам