C# 如何将应用程序栏颜色强制转换为主题资源颜色

C# 如何将应用程序栏颜色强制转换为主题资源颜色,c#,windows-phone-7,windows-phone-8,C#,Windows Phone 7,Windows Phone 8,我只想自定义我的应用程序栏,以便在某些状态下使用不同的默认主题颜色。这是为了给标准应用程序条一点不同的感觉。我的问题是将前景色和背景色设置为主题资源颜色。我在尝试以下操作时遇到无效的强制转换异常 ApplicationBar.ForegroundColor = (Color)Application.Current.Resources["PhoneChromeBrush"]; 我不知道为什么?要注意的是,调试前不会出现明显错误。使用 ApplicationBar.ForegroundColor

我只想自定义我的应用程序栏,以便在某些状态下使用不同的默认主题颜色。这是为了给标准应用程序条一点不同的感觉。我的问题是将前景色和背景色设置为主题资源颜色。我在尝试以下操作时遇到无效的强制转换异常

ApplicationBar.ForegroundColor = (Color)Application.Current.Resources["PhoneChromeBrush"];
我不知道为什么?要注意的是,调试前不会出现明显错误。

使用

ApplicationBar.ForegroundColor = (Application.Current.Resources["PhoneChromeBrush"] as SolidColorBrush).Color;
由于该资源是一个笔刷(因此名为PhoneChromeBrush),因此必须首先将其转换为SolidColorBrush,然后从中获取颜色属性