C# 跨应用程序更改/使用StaticResource

C# 跨应用程序更改/使用StaticResource,c#,xaml,windows-phone-8,windows-phone,windows-phone-7.1,C#,Xaml,Windows Phone 8,Windows Phone,Windows Phone 7.1,我想改变肤色,所以这样做: <Application.Resources> <Color x:Key="AppColor">#FFFFFF</Color> </Application.Resources> 我得到一个未实现的错误。当我尝试删除它并添加新的时: Application.Current.Resources.Remove("AppColor"); var color = Color.FromArgb(255, 0, 255, 2

我想改变肤色,所以这样做:

<Application.Resources>
    <Color x:Key="AppColor">#FFFFFF</Color>
</Application.Resources>
我得到一个未实现的错误。当我尝试删除它并添加新的时:

Application.Current.Resources.Remove("AppColor");
var color = Color.FromArgb(255, 0, 255, 255);
Application.Current.Resources.Add("AppColor", color);
我得到了一个xaml错误,不管我在哪里使用了这个静态值

如何使用颜色并更改它?

使用DynamicResource而不是StaticResource可以解决此问题:

Application.Current.Resources[AppColor]=Color.FromArgb255,0,255,255;
一种可能的解决方案是在参考资料中使用SolidColorBrush

<SolidColorBrush x:Key="AppBrush" Color="#FF7DC959"/>
示例定义SolidColorBrush,在App.xaml资源中使用x:Name=AppBrush

<SolidColorBrush x:Key="AppBrush" Color="#FF7DC959"/>

那也不行!我认为根本的问题是静态资源不应该在运行时改变。也许能给你一个解决办法。
<SolidColorBrush x:Key="AppBrush" Color="#FF7DC959"/>
<....BackgroundColor="{Binding Color,Source={StaticResource AppBrush}}">
<....BackgroundColor="{StaticResource AppBrush}">
SolidColorBrush brush = (SolidColorBrush)App.Current.Resources["AppBrush"];
brush.Color = Colors.DarkGray;