locked
Application Theme. Specified method is not supported RRS feed

  • Общие обсуждения

  • Добрый день!

    Возникла следующая проблема. Захотелось менять тему приложения. Пусть не на ходу, а с перезагрузки, но менять.

    Определил следующий код в App.xaml.cs.OnLaunched() методе

    var res = ApplicationData.Current.LocalSettings.Values;
                if (res.ContainsKey("theme"))
                {
                    Application.Current.RequestedTheme = res["theme"].ToString() == "light" ? ApplicationTheme.Light : ApplicationTheme.Dark;
                }
                else
                {
                    res.Add(new KeyValuePair<string, object>("theme", "light"));
                    Application.Current.RequestedTheme = ApplicationTheme.Light;
                }

    В нужном месте поместил ToggleSwitch и сделал ему следующий code behind

    private void ThemeToggleSwitch_OnToggled(object sender, RoutedEventArgs e)
            {
                var res = ApplicationData.Current.LocalSettings.Values;
    
                if ((sender as ToggleSwitch).IsOn == true)
                {
                    res["theme"] = "dark";
                    Application.Current.RequestedTheme = ApplicationTheme.Dark;
                }
                else
                {
                    res["theme"] = "light";
                    Application.Current.RequestedTheme = ApplicationTheme.Light;
                }
            }

    В момент запуска приложения оно падает в App.xaml.cs.OnLaunched на строчке

    Application.Current.RequestedTheme = res["theme"].ToString() == "light" ? ApplicationTheme.Light : ApplicationTheme.Dark;

    Со следующей ошибкой: System.NotSupportedException

    Пишу универсальное приложение под windowsPhone 8.1

    Заранее благодарю

    13 октября 2014 г. 10:50

Все ответы