Добавить / удалить 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 анализируется при загрузке приложения (или при обнаружении изменения темы), а коллекции, измененные во время выполнения, либо недоступны, либо сбрасываются.