在Windows 10商店App中更改主题颜色

时间:2015-10-06 19:26:05

标签: c# windows-phone windows-10

//这是App.Xaml.cs中的代码

private void DetermineAppTheme()
            {

            bool value = true;

            if (ApplicationData.Current.LocalSettings.Values.ContainsKey("IsLightTheme"))
            {
                value = ((bool)ApplicationData.Current.LocalSettings.Values["IsLightTheme"]);
            }
            if (value == true)
            {
                this.RequestedTheme = (ApplicationTheme)ElementTheme.Light;
            }
            else
            {
                this.RequestedTheme = (ApplicationTheme)ElementTheme.Dark;
            }
        }

这是我之前用于在Windows 8 / 8.1商店应用中更改颜色的代码,但遗憾的是,这不适用于Windows 10应用。

在我的设置页面中,我正在使用这些代码行更改主题的状态

ApplicationData.Current.LocalSettings.Values["IsLightTheme"] = false;
        MessageDialog messageDialog = new MessageDialog("Please restart the Application so that Theme change can take place");
        await messageDialog.ShowAsync();

为什么这不会将颜色从白色变为黑色,我不明白。如果在Windows 8应用程序上实现,这可以正常工作。

2 个答案:

答案 0 :(得分:0)

我的猜测是,在你的App.xaml.cs文件中,你设置了value = true;然后if(value){//设置灯光主题}

如果值为false,则需要设置灯光主题。

答案 1 :(得分:0)

我自己找到了解决方案。首先

 this.RequestedTheme = (ApplicationTheme)ElementTheme.Light;

必须更改为

this.RequestedTheme = (ApplicationTheme)ElementTheme.Default;

并且在app.xaml中必须删除请求的主题。然后这段代码将改变主题/