2013-05-10 2 views
0

У меня есть приложение WinRT, и я хотел бы, чтобы пользователь мог выбирать темы, могу ли я определить другую тему, кроме Light/Dark?WinRT User Selectable Theme

ответ

1

В настоящее время он не встроен в платформу, поэтому вам нужно будет реализовать его самостоятельно. То, как я это сделаю, это заменить словари ресурсов на уровне приложения и воссоздать визуальное дерево при переключении словарей (например, удалить и добавить все дерево управления - корневой кадр, текущую страницу и т. Д. Связки StaticResource никогда не обновляются, поэтому вам нужно

+0

Filip, как я могу это сделать? Я пытаюсь изменить некоторые ресурсы во время выполнения, и они не отображаются, если я не перезапущу приложение. Я пытаюсь сделать это, m, предполагая, что это связано с тем, что привязки StaticResource не обновляются, как вы сказали. Можете ли вы привести пример о том, как это сделать? –

+0

StaticResources являются статическими, поэтому они не переоценивают, если они им не нужны. Я не уверен, когда именно они загружаются, но вы можете попробовать то, что я упоминал, - удалите Frame из Window.Current.Content, а затем добавьте его или новый экземпляр назад. Перейдите к новому экземпляру страницы и т. д. –

+0

Конечно, также возможно, что, поскольку я пробовал это в последнюю очередь, платформа стала чем-то умнее и кэширует ресурсы, поэтому вам нужно перезапустить приложение, чтобы обновить их, но я все равно попытаюсь. –