更改Windows应用商店8.1应用程序中的单个主题颜色

本文关键字:单个主 颜色 应用程序 应用 Windows 更改 | 更新日期: 2023-09-27 17:59:30

我知道Windows Store 8.1应用程序上只有3个标准主题可用。我同意。但我想为我的应用程序更改选定主题中的单一颜色或笔刷(例如,我想将Light主题中的ButtonBackgroundThemeBrush更改为纯红色)。有人知道如何做到这一点吗?

我在SO:上发现了这些问题

制作自己的windows 8应用程序主题

如何在C#/XAML Windows应用商店(Metro UI)应用程序中混合浅色和深色主题?

在Windows 8.1 中创建主题

但我找不到任何明确的答案。

更改Windows应用商店8.1应用程序中的单个主题颜色

如果我是你,我会在App.cs中设置这些颜色,可能是在构造函数或加载的事件中。

(App.Current.Resources["ButtonBackgroundThemeBrush"] as SolidColorBrush).Color = Colors.Red;

据我所知,如果用户在应用程序打开时更改了主题,那么主题将一直保留到用户重新启动应用程序。话虽如此,你还需要考虑到当前的主题。例如,如果用户使用"深色"主题,则不希望将主题画笔设置为"红色"。您可以使用此处概述的方法检测当前主题。

好的,我找到了方法,只需在App.xaml中插入以下代码:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Light">
                <SolidColorBrush x:Key="ButtonBackgroundThemeBrush" Color="Red" />
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>