c# - 以编程方式更改 Windows 10 UWP App 中的主题

标签 c# windows-10 windows-10-mobile windows-10-universal

我可以使用 this.RequestedTheme = ElementTheme.Dark; 更改主题 但是我需要的是整个应用程序级别,因为这个只是将当前页面的主题更改为深色。

每当我尝试这个 App.Current.RequestedTheme = ApplicationTheme.Dark; 我总是得到这个错误

An exception of type 'System.NotSupportedException' occurred in UWPApp.exe but was not handled in user code

有没有一种方法可以将整个应用程序主题从浅色更改为深色,反之亦然?

我正在使用 VS2015

最佳答案

更新了我最终决定的答案。

我使用了一个设置类来保存所有应用程序设置,包括要使用的主题。由于主题只能在启动时设置,我们需要确保设置它们。这是我使用的代码:

在 App.xaml.cs 文件中:

public App()
{
    //Load settings
    AppSettings.LoadSettings();
    this.RequestedTheme = AppSettings.SelectedTheme;

    this.InitializeComponent();
}

在 App.xaml 文件中确保删除此属性:

    RequestedTheme="Light"

如果它没有被移除,它总是默认为亮,无法更改。

通过这种方式,用户可以选择主题,它会在应用启动时被存储和使用。只需确保在应用程序初始化阶段加载并应用它即可。

关于c# - 以编程方式更改 Windows 10 UWP App 中的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554871/

相关文章:

localization - "en"与 "en-US"作为 Windows 10 UWP 的默认语言(全局分布)

c++ - Windows-10 移动版 : "The specified module could not be found. (Exception from HRESULT: 0x8007007E)":null

C# - 图像的高质量字节数组转换

c# - 数据绑定(bind)到 WPF TreeView 中的 SelectedItem

c# - 如何在按钮单击时模拟按键 - Unity

windows-10 - Xbox 上的 UWP 应用程序

c++ - 在 Windows 10 上显示触摸友好菜单

visual-studio - 最低 SDK 版本 Windows 10 (UWP)

C#:根据设定的周期增加发票编号

windows-10 - 在windows10中开发dx应用还需要DirectX SDK吗?