2017-01-04 10 views
0

Я пытаюсь настроить приложение UWP (Windows 10) на изменение динамической темы.Темы C# UWP динамически меняются

Я добавил тумблер, который должен переключать темную/светлую тему. Но мне удалось изменить только на текущей странице, как только я перейду на другую страницу, тема вернется к умолчанию. Код выглядит следующим образом:

RequestedTheme = toggleButton.IsChecked.Value ? ElementTheme.Light : ElementTheme.Dark; 

Кроме того, я хотел бы создать свою собственную темную и темную тему.

Есть ли какое-либо легкое решение для этого?

Благодаря

+2

Если вы хотите изменить тему в режиме реального времени, без перезагрузки приложения, вы должны изменить тему rootFrame приложения. '((Frame) Window.Current.Content) .RequestedTheme = toggleButton.IsChecked.Value? ElementTheme.Light: ElementTheme.Dark; ' –

+0

Спасибо, это решило это. Еще один вопрос, как я могу настроить стили? Например, как сделать пользовательские цвета для темного стиля? – user3239349

+0

Вам необходимо создать пользовательские ресурсные словари для каждой темы. Взгляните [здесь] (https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/resourcedictionary-and-xaml-resource-references#theme-resources-and-theme-dictionaries). –

ответ

0

вместо изменения RequestTheme на объекте странице использовать приложение. App.Current.RequestTheme = toggleButton.IsChecked.Value? ElementTheme.Light: ElementTheme.Dark;

Changing Theme in Windows 10 UWP App Programmatically см

+0

Это не поддерживается. 'Application.RequestedTheme' может быть изменен только в конструкторе приложения. –

+0

Исключение типа «System.NotSupportedException» произошло в ConceptProject.exe, но не было обработано в коде пользователя – user3239349

Смежные вопросы