Xaml UWP以编程方式更改ResourceDictionary

Xaml UWP以编程方式更改ResourceDictionary,xaml,uwp,windows-10,Xaml,Uwp,Windows 10,我正在设计一个应用程序,从RESTAPI检索颜色,并需要使用这些应用程序的主题。我试图在ResourceDictionary中定义样式内部的颜色,因为我需要设置的颜色之一是按钮的指针VisualState。我目前正在使用以下方法更改SolidColorBrush App.Current.Resources["PrimaryBrush"] = myNewSolidColorBrush; 当我将元素的背景直接绑定到这个静态区域时,颜色会完美地工作。但是,当我使用ResourceDictionary

我正在设计一个应用程序,从RESTAPI检索颜色,并需要使用这些应用程序的主题。我试图在ResourceDictionary中定义样式内部的颜色,因为我需要设置的颜色之一是按钮的指针VisualState。我目前正在使用以下方法更改SolidColorBrush

App.Current.Resources["PrimaryBrush"] = myNewSolidColorBrush;
当我将元素的背景直接绑定到这个静态区域时,颜色会完美地工作。但是,当我使用ResourceDictionary将样式的内部移动到单独的文件中,并将样式内部的背景绑定到我正在更改的SolidColorBrush资源时

我的问题是,当我以编程方式更改SolidColorBrush时,我样式中的绑定不会更新!有没有办法强制资源字典重新评估其绑定,或者以编程方式更改我定义的样式中的setter值

我的问题是,当我以编程方式更改SolidColorBrush时,我样式中的绑定不会更新


我不确定是否有办法强制使用样式进行提取,但您可以将样式中的颜色绑定到solidColorBrush类型的App.xaml.cs中的静态属性,并使用
{x:static propertyName}
进行绑定。然后继续提高资产水平,这是一个有趣的想法!我试试看。您是否可以使用
App.*
全局访问这些值?如果它们是静态的,则是。
<ResourceDictionary>
    <SolidColorBrush x:Key="PrimaryBrush" Color="Yellow"/>
</ResourceDictionary>
(App.Current.Resources["PrimaryBrush"]as SolidColorBrush).Color = Colors.Red;