Windows 8 为现代UI应用程序设置颜色

Windows 8 为现代UI应用程序设置颜色,windows-8,themes,winrt-xaml,modern-ui,Windows 8,Themes,Winrt Xaml,Modern Ui,我想为我的现代UI应用程序设置自定义颜色。此颜色将用于GridView\ListView和其他位置的选择边框 另外,我知道,我可以更改GridViewItem的样式,但我想在所有地方看到这种颜色,在应用程序中可以看到的地方。您需要在使用选择颜色的地方重新设置所有控件的样式。您需要在使用选择颜色的地方重新设置所有控件的样式。冗长的方法是逐个覆盖应用程序主题资源,以获得您想要的颜色。我在上一次讨论过这个解决方案 这相当耗时,而且有很多变化需要处理。最好的方法是使用一个名为的开源工具,这是一个小小的命

我想为我的现代UI应用程序设置自定义颜色。此颜色将用于GridView\ListView和其他位置的选择边框


另外,我知道,我可以更改GridViewItem的样式,但我想在所有地方看到这种颜色,在应用程序中可以看到的地方。

您需要在使用选择颜色的地方重新设置所有控件的样式。

您需要在使用选择颜色的地方重新设置所有控件的样式。

冗长的方法是逐个覆盖应用程序主题资源,以获得您想要的颜色。我在上一次讨论过这个解决方案


这相当耗时,而且有很多变化需要处理。最好的方法是使用一个名为的开源工具,这是一个小小的命令行exe,给定颜色将为您生成完整的应用程序资源。

冗长的方法是逐个覆盖应用程序主题资源,以获得您想要的颜色。我在上一次讨论过这个解决方案


这相当耗时,而且有很多变化需要处理。最好的方法是使用一个名为的开源工具,这是一个小小的命令行exe,给定颜色将为您生成完整的应用程序资源范围。

我决定覆盖笔刷列表。可能此代码将帮助某人:

private List<string> ResourcesColors = new List<string>
        {
            "PageAccentBrush",
            "ListViewItemSelectedBackgroundThemeBrush",
            "ListViewItemSelectedPointerOverBackgroundThemeBrush",
            "ListViewItemSelectedPointerOverBorderThemeBrush",
            "ComboBoxItemSelectedBackgroundThemeBrush",
            "ComboBoxItemSelectedPointerOverBackgroundThemeBrush",
            "ComboBoxSelectedBackgroundThemeBrush",
            "ComboBoxSelectedPointerOverBackgroundThemeBrush",
            "ListBoxItemSelectedBackgroundThemeBrush",
            "ListBoxItemSelectedPointerOverBackgroundThemeBrush",
            "ProgressBarForegroundThemeBrush",
            "ProgressBarIndeterminateForegroundThemeBrush",
            "SliderTrackDecreaseBackgroundThemeBrush",
            "SliderTrackDecreasePointerOverBackgroundThemeBrush",
            "SliderTrackDecreasePressedBackgroundThemeBrush",
            "ToggleSwitchCurtainBackgroundThemeBrush",
            "ToggleSwitchCurtainPointerOverBackgroundThemeBrush",
            "ToggleSwitchCurtainPressedBackgroundThemeBrush"
        };

    private void ApplyColorsToResources()
    {
        if (this.Resources.ContainsKey("PageAccentBrush"))
        {
            SolidColorBrush pageAccentBrush = this.Resources["PageAccentBrush"] as SolidColorBrush;

            if (pageAccentBrush != null)
            {
                SolidColorBrush scb = null;
                foreach (var item in this.ResourcesColors)
                {
                    scb = (SolidColorBrush)Application.Current.Resources[item];
                    scb.Color = pageAccentBrush.Color;
                }
            }
        }
    }
private List resources颜色=新列表
{
“PageAccentBrush”,
“ListViewItemSelectedBackgroundThemeBrush”,
“ListViewItemSelectedPointerOverBackgroundThemeBrush”,
“ListViewItemSelectedPointerOverOrderTheMebrush”,
“ComboBoxItemSelectedBackgroundThemeBrush”,
“ComboBoxItemSelectedPointerOverBackgroundThemeBrush”,
“ComboBoxSelectedBackgroundThemeBrush”,
“ComboBoxSelectedPointerOverBackgroundThemeBrush”,
“ListBoxItemSelectedBackgroundThemeBrush”,
“ListBoxItemSelectedPointerOverBackgroundThemeBrush”,
“ProgressBarForegroundThemeBrush”,
“ProgressBarInDeterminateForRegroundtheMebrush”,
“SliderTrack DecreatesBackgroundTheMebrush”,
“SliderTrackDecreasePointerOverBackgroundThemeBrush”,
“SliderTrack DecreasedBackgroundTheMebrush”,
“切换CurtainBackgroundTheMebrush”,
“切换CurtainPointerOverBackgroundTheMebrush”,
“切换开关限制按下背景按钮Mebrush”
};
私有void ApplyColorsToResources()
{
if(this.Resources.ContainsKey(“PageAccentBrush”))
{
SolidColorBrush pageAccentBrush=this.Resources[“pageAccentBrush”]作为SolidColorBrush;
if(pageAccentBrush!=null)
{
SolidColorBrush scb=null;
foreach(此.ResourcesColors中的变量项)
{
scb=(SolidColorBrush)Application.Current.Resources[item];
scb.Color=pageAccentBrush.Color;
}
}
}
}

我决定覆盖笔刷列表。可能此代码将帮助某人:

private List<string> ResourcesColors = new List<string>
        {
            "PageAccentBrush",
            "ListViewItemSelectedBackgroundThemeBrush",
            "ListViewItemSelectedPointerOverBackgroundThemeBrush",
            "ListViewItemSelectedPointerOverBorderThemeBrush",
            "ComboBoxItemSelectedBackgroundThemeBrush",
            "ComboBoxItemSelectedPointerOverBackgroundThemeBrush",
            "ComboBoxSelectedBackgroundThemeBrush",
            "ComboBoxSelectedPointerOverBackgroundThemeBrush",
            "ListBoxItemSelectedBackgroundThemeBrush",
            "ListBoxItemSelectedPointerOverBackgroundThemeBrush",
            "ProgressBarForegroundThemeBrush",
            "ProgressBarIndeterminateForegroundThemeBrush",
            "SliderTrackDecreaseBackgroundThemeBrush",
            "SliderTrackDecreasePointerOverBackgroundThemeBrush",
            "SliderTrackDecreasePressedBackgroundThemeBrush",
            "ToggleSwitchCurtainBackgroundThemeBrush",
            "ToggleSwitchCurtainPointerOverBackgroundThemeBrush",
            "ToggleSwitchCurtainPressedBackgroundThemeBrush"
        };

    private void ApplyColorsToResources()
    {
        if (this.Resources.ContainsKey("PageAccentBrush"))
        {
            SolidColorBrush pageAccentBrush = this.Resources["PageAccentBrush"] as SolidColorBrush;

            if (pageAccentBrush != null)
            {
                SolidColorBrush scb = null;
                foreach (var item in this.ResourcesColors)
                {
                    scb = (SolidColorBrush)Application.Current.Resources[item];
                    scb.Color = pageAccentBrush.Color;
                }
            }
        }
    }
private List resources颜色=新列表
{
“PageAccentBrush”,
“ListViewItemSelectedBackgroundThemeBrush”,
“ListViewItemSelectedPointerOverBackgroundThemeBrush”,
“ListViewItemSelectedPointerOverOrderTheMebrush”,
“ComboBoxItemSelectedBackgroundThemeBrush”,
“ComboBoxItemSelectedPointerOverBackgroundThemeBrush”,
“ComboBoxSelectedBackgroundThemeBrush”,
“ComboBoxSelectedPointerOverBackgroundThemeBrush”,
“ListBoxItemSelectedBackgroundThemeBrush”,
“ListBoxItemSelectedPointerOverBackgroundThemeBrush”,
“ProgressBarForegroundThemeBrush”,
“ProgressBarInDeterminateForRegroundtheMebrush”,
“SliderTrack DecreatesBackgroundTheMebrush”,
“SliderTrackDecreasePointerOverBackgroundThemeBrush”,
“SliderTrack DecreasedBackgroundTheMebrush”,
“切换CurtainBackgroundTheMebrush”,
“切换CurtainPointerOverBackgroundTheMebrush”,
“切换开关限制按下背景按钮Mebrush”
};
私有void ApplyColorsToResources()
{
if(this.Resources.ContainsKey(“PageAccentBrush”))
{
SolidColorBrush pageAccentBrush=this.Resources[“pageAccentBrush”]作为SolidColorBrush;
if(pageAccentBrush!=null)
{
SolidColorBrush scb=null;
foreach(此.ResourcesColors中的变量项)
{
scb=(SolidColorBrush)Application.Current.Resources[item];
scb.Color=pageAccentBrush.Color;
}
}
}
}